Как правильно клонировать /dev/sda на /dev/sdb

У меня есть два жестких диска одинакового размера, представленные в виде / dev / sda и / dev / sdb. Я пытаюсь скопировать / dev / sda на / dev / sdb. / dev / sda имеет один раздел ext3. / dev / sda и / dev / sdb имеют одинаковое расположение разделов. Я использую следующую команду:

дд если = / dev / sda из = / dev / sdb

Когда я монтирую файловую систему в / dev / sdb, я вижу, что не все изменения отражаются на устройстве. Другими словами, диски не совпадают. Так что не получается. И я не понимаю, почему. Может ли это повредить таблицу разделов в / dev / sdb. Это правильный способ клонировать диск?

Ну, я не размонтирую файловую систему в / dev / sda, прежде чем начну ее клонировать. Но я абсолютно уверен, что никто не пишет об этом, пока выполняется клонирование.

1 ответ

Чтобы клонировать диск, вам абсолютно необходимо размонтировать все разделы. Все современные настольные ОС имеют множество служб, работающих в фоновом режиме, которые выполняют запись в раздел ОС, а также могут по какой-либо причине периодически выполнять запись в другие подключенные разделы (даже те, которые находятся на других дисках). Записи могут быть небольшими и небольшими, но любые записи, особенно те, которые связаны с метаданными файловой системы, разрушат ваше клонирование.

Обычно вы клонируете целые диски, загружая Linux Live CD / DVD / USB Key (выберите любой дистрибутив, который вам нравится, я предпочитаю Mint для такого рода вещей). Таким образом, ваши жесткие диски могут оставаться не подключенными.

Команда, которая у вас есть, будет работать нормально, но в том виде, в каком она есть, если сектор не может быть прочитан по какой-либо причине, dd остановится. Вы можете хотеть такое поведение, или вы можете хотеть, чтобы оно продолжалось... до вас. Arch имеет отличную документацию по клонированию дисков, и они рекомендуют что-то вроде этого:

# dd if=/dev/sdX of=/dev/sdY bs=512 conv=noerror,sync

Но прочитайте документацию, особенно по поводу настройки bs до более высоких значений, так как это может оказать существенное влияние на скорость клонирования. Если ты хочешь dd чтобы остановить, если он обнаружит ошибку, удалите conv=noerror,sync часть.

Другие вопросы по тегам