1

Я получаю SSD и хочу, чтобы он стал моим новым загрузочным диском Linux. Однако он меньше корневого раздела Linux моего текущего жесткого диска, поэтому я хотел бы скопировать файловую систему и исключить некоторые каталоги (которые я оставлю на другом жестком диске). Поэтому я не могу просто клонировать раздел с parted или похожим, потому что он слишком большой.

Я хочу убедиться, что все данные, метаданные, ссылки и тому подобное сохранены. Похоже, это исключает "cp", потому что он не сохраняет все метаданные и информацию о ссылках.

Две основные техники, которые я смог определить, выглядят примерно так:

 find / -xdev -print0 | cpio -pa0V /mnt/dst

а также:

 rsync -avP -H -S --numeric-ids / /mnt/dst

Может ли кто-нибудь вмешаться в то, что они использовали в прошлом, будь то один из них или другой метод, или если они увидят какие-либо недостатки в этих подходах.

2 ответа2

0

Не уверен, что вы подразумеваете под метаданными. Номера инодов? Cp -a скопирует все разрешения, ссылки и т.д. Если вы хотите исключить вещи, я бы использовал опцию exync --exclude. Если у вас есть разреженные файлы (возможно, нет, если вы не занимаетесь виртуализацией), вам следует использовать опцию -S, если вы собираетесь использовать rsync.

Если это ваш загрузочный диск, то вам также необходимо переустановить загрузчик и т.д. И, возможно, настроить разделы.

0

В целом, подход с использованием find и cpio должен быть хорошим (я обычно использую find, xargs и tar, но это больше связано с существующим знанием этих инструментов). Обычно tar и cpio созданы для резервного копирования и поэтому должны хранить все необходимое. Однако могут быть некоторые метаданные, которые они пропускают (ACL, такие как метки SELinux), есть звезда, которая, очевидно, имеет лучшую поддержку для этого. Я ожидал бы, что rsync будет лучше, чем cp, но хуже, чем star при обработке дополнительных метаданных.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .