Обычно я использую команду из этого ответа . Преимущество заключается в том, что он также сохраняет расширенные атрибуты и списки управления доступом.
rsync -avxHAX --info=progress2 / /new-disk/
Варианты:
-a : all files, with permissions, etc..
-v : verbose, mention files
-x : stay on one file system
-H : preserve hard links (not included with -a)
-A : preserve ACLs/permissions (not included with -a)
-X : preserve extended attributes (not included with -a)
Примечание о ходе синхронизацииprogress2
:rsync инкрементно сканирует файлы для сканирования ("инкрементная рекурсия" ). Результат этой инкрементной рекурсии показан на выходе progress2
's ir-chk
. Однако до тех пор, пока не будут просканированы все файлы, процент выполнения вводит в заблуждение, поскольку rsync еще не знает, сколько файлов должно быть передано. Чтобы сначала проверить все файлы и только потом начать синхронизацию, добавьте опцию --no-inc-recursive
.
Я думаю, что вы слишком быстро отклонили ответ на первый вопрос . Я собирался написать почти такой же ответ. Поэтому для обсуждения того, как именно это сделать, я бы последовал этому ответу.
Большинство точек монтирования определены в /etc/fstab
. Однако это [практически всегда] хранится в корневой файловой системе (/
). Вы не можете настроить, какой раздел является корневым в файле, хранящемся в корне. Вам нужно что-то настроить, какой раздел монтируется как корневой , прежде чем/etc/fstab
можно будет прочитать. Работа initramfs состоит в том, чтобы смонтировать root (/
), а затем выполнить в него chroot.
Важно понимать, что ваша система уже монтирует другую файловую систему в качестве первой корневой файловой системы, затем монтирует выбранную вами корневую файловую систему в другом месте, а затем вызывает chroot в эту файловую систему.
Как говорится в другом ответе, в initramfs [обычно] нет какой-либо опции конфигурации, чтобы сделать его chroot в подкаталог. Но достаточно просто изменить скрипты /init
и, таким образом, изменить, куда скрипт будет выполнять chroot.