Да, что-то должно запустить утилиту LVM (как вы говорите, vgchange-y
или аналогичный) в какой-то момент. Там нет магии, которая заставляет ядро рисуться тем сама собой.
В initramfs это обычно делается скриптом / init
(прямо или косвенно). Некоторые системы также сканируют для VG / LV всякий раз, когда UDEV
рассказывает о новом диске, но с DevTMPFS у вас тоже нет этой опции.
Итак, да, конечно, просто сделайте скрипт init для LVM и имейте каким-то образом систему INIT INING.
Это может работать для вас:
#!/bin/bash
#
cd /a || exit
find . -type f |
while read FILE
do
TARGET="/app/$FILE"
test -f "$TARGET" && cp -fp "$TARGET" "$TARGET.bak"
mv "$FILE" "$TARGET"
done
Вы можете попробовать это:
#!/usr/bin/env ksh
a_files=( $(find /path/to/a/ -type f) )
for file in "${a_files[@]}"; do
mv "/path/to/app${file##*a}" "/path/to/app${file##*a}.bak"
mv "$file" "/path/to/app${file##*a}"
done
, если A /
A / и
в том же каталоге E.g. / Home / user / {a, приложение}
, то:
#!/usr/bin/env ksh
a_files=( $(find /home/user/a/ -type f) )
for file in "${a_files[@]}"; do
mv "${file%%a/*}app${file##*/a}" "${file%%a/*}app${file##*/a}.bak"
mv "$file" "${file%%a/*}app${file##*/a}"
done
Это сначала возьмет резервную копию файлов / Home / user / app /
как .Bak
Расширение, а затем замените исходные файлы файлами из / Home / user / A
.