Мне нужно сделать копию работающей системы Linux, которая (содержится в /, а новое место подготовлено в / mnt / sdb5), по-видимому, содержит значительное количество жестких, программных ссылок и специальных файлов в / dev; будет cpio
обрабатывать эту работу без применения дополнительной магии?
В настоящее время известны гарантии:
- не собирается удалять / изменять работающую систему до тех пор, пока копия не будет считаться загрузочной и с которой она будет работать
root=/dev/sdb5
; перед удалением сделайте полную резервную копию раздела. - будет использовать cpio для архивирования каждого корневого каталога в отдельности, поэтому распакует его из среды LiveCD, чтобы донорский раздел не пострадал
Но, тем не менее, мы не собираемся терять время только потому, что cpio пропустил какой-то флаг и нанёс вред полномочиям / типу узла / soft или hardlink.
Какой инструмент использовать / каких подводных камней избегать?
Ответы:
Чтобы ответить на актуальный вопрос относительно
cpio
: это флаги, которые я бы использовал дляcpio
:Конечно, поскольку вы не копируете по сети, я бы просто использовал
cp
:И если вы хотите иметь возможность выполнять копирование несколько раз,
rsync
это лучший выбор для его возобновления возможностей. (Он такжеcp
обрабатывает списки ACL и расширенные атрибуты и может по желанию работать по сети, напримерcpio
. Так что это наиболее полезная опция, за исключением локальной копии, которую я предпочитаю использоватьcp
.)Не забудьте скопировать
/boot
и/dev
!/boot
это просто, просто скопируйте его. Но/dev
сейчас гораздо сложнее, так как он скрытudev
. Я рекомендую следующую процедуру:mkdir /tmp/dev
mount --move /dev /tmp/dev
/dev
с/mnt/sdb5
помощью одной из вышеуказанных командmount --move /tmp/dev /dev
rmdir /tmp/dev
источник
Как упомянул @Klox, при копировании разделов одинакового размера я согласен на использование
dd
.Но когда вы хотите скопировать диск на другой раздел с другим размером, я бы предпочел пойти
rsync
. Смонтируйте новый раздел (скажем, / mnt / new) и:Нет дополнительной магии для символических ссылок и нет необходимости в живом компакт-диске (для одного пользователя / init 1 все будет в порядке).
источник
rsync
все время и пропустил очевидное. Мне нравитсяdd
по причинам, которые я изложил, ноrsync
лучше подходит для нужд ОП.Более оптимальный вариант
dd
использованияpartimage
, он будет копировать только используемый раздел раздела, что делает копирование больших неиспользуемых разделов более целесообразным.Обратите внимание на важное предостережение:
Удобная копия включена в дистрибутив System Rescue CD .
источник
При перемещении установок Linux между жесткими дисками я всегда загружаюсь с Live CD и использую
dd
для копирования весь раздел. Я признаю, что это не касается изменений размера диска (неизбежно, что новый диск больше, что упрощает вещи), но мне нравится техника именно по тем причинам, по которым вы беспокоитесь об использованииcpio
: что-то может пойти не так. Используяdd
технику, все или ничего: либо новый диск загружается и все то же самое, либо диск не загружается. Там нет риска скрыться проблемы всплывают позже.Теперь, конечно, есть проблема с разделом, который не заполняет новый диск, но я бы предпочел просто создать новый раздел, чтобы заполнить дополнительное пространство и полагаться на символические ссылки для перемещения каталогов. (Я уверен, что есть инструменты для изменения размера разделов, но я не использовал их.)
источник
xfs_grow
), а корневой раздел тоже XFS; что еще хуже, это хорошо зарекомендовавший себя Gentoo, который сам по себе почти такой жирный. Что еще хуже, перемещение должно быть сделано без добавления дополнительного хранилища и в настоящее время не может создавать резервные копии более чем на 60 гигабайт - так что никаких операций с разделами. Нужно поставить Win 'на эту машину для тестирования некоторых вещей.