Что является лучшей практики для клонирования с dd
существующего 512-байт-в-сектор жесткого диска (весь диск, а не конкретных разделов) в современном 4-kibibytes-на-сектора Advanced Format
Drive? Какие варианты следует использовать? Они имеют значение вообще?
3 ответа
Хорошо, я думаю, что стоит опубликовать то, что я сделал сам, как ответ.
Я использовал следующую команду для клонирования диска:
dd if=/dev/sda of=/dev/sdb ibs=512 obs=4096
Здесь первый вариант ibs
дает команду dd
что 512 байты должны быть считаны из источника в то время , и obs
, что 4096 байты должны быть записаны в то время , к месту назначения.
Вся процедура прошла без проблем. После того, как это было закончено, я отключил прежний двигатель и попытался загрузить с нового. Он загрузился и все разделы были правильно показаны.
Чтобы убедиться, что выравнивание подходит для этого накопителя Advanced Format, я скачал инструмент WD Align
с веб-сайта Western Digital, и он показывает, что все выровнено правильно, вот скриншот:
Я не знаю, были ли дополнительные варианты полезны для этого все же.
Какой это расширенный формат диска? Имеет ли он логотип "AF" (что означает, что на интерфейсе накопителя представлены 512-байтовые сектора, т.е. это действительно диск "512e") или логотип "4Kn"?
Если первое, вам не нужно делать ничего особенного - вы можете обращаться с ним как с устаревшим диском, хотя правильное выравнивание разделов - хорошая идея (это может сильно повлиять на производительность).
Если последнее, вы не можете скопировать его «без каких-либо изменений», потому что метаданные файловой системы должны измениться. Например, накопитель 512e "4 ГБ" будет иметь LBN от 0 до 7 812 500 000, в то время как истинные 4K родные "4 ГБ накопителя" LBN будут иметь только около 976 562 500. Таким образом, LBN в метаданных диска 512 байт на сектор не будет иметь смысла на диске 4Kn.
Поскольку вы используете диск 512e, ваш пример с dd не нужен. Вы могли бы просто использовать dd, если =/dev/sda of =/dev/sdb bs = 2M (что я обычно использую). Реальная проблема идет от 512n до 4Kn, и, по сути, это не просто. В большинстве случаев, вероятно, лучше перераспределить и cp -a все обратно в дополнение к перенастройке загрузчика и т.д.
Вы можете использовать dd туда и обратно между 512n и 4Kn с минимальным неразрушающим перераспределением, зависит от того, использовали ли вы / используете 512 кратных 8 (512 * 8 = 4096) для вашего разделения.
Пример:
512n partition under gdisk:
Number Start (sector) End (sector) Size Code Name
1 2048 4095 1024.0 KiB EF02 linux-bios
2 4096 41943006 20.0 GiB 8E00 linux-lvm
4Kn translation after dd'ing (from 512 to 4096 physical and logical),
then re-repartitioning:
Number Start (sector) End (sector) Size Code Name
1 256 511 1024.0 KiB EF02 linux-bios
2 512 5242875.75 20.0 GiB 8E00 linux-lvm
Упс! Обратите внимание на десятичную точку, (41943006+1/8)? Это не сработает.
Единственный способ - если у вас есть более 20,0 ГБ на новом диске и добавить дополнительный сектор 4kn (5242875+1), а затем изменить размер базовой файловой системы, lvm и т.д.
Теперь, если бы вы разбили свой 512n диск, используя кратные 8, то первая (512n) таблица разделов выше выглядела бы так:
Number Start (sector) End (sector) Size Code Name
1 2048 4095 1024.0 KiB EF02 linux-bios
2 4096 41942999 20.0 GiB 8E00 linux-lvm
And the proper 4Kn translation would look like this:
Number Start (sector) End (sector) Size Code Name
1 256 511 1024.0 KiB EF02 linux-bios
2 512 5242875 20.0 GiB 8E00 linux-lvm
(41942999+1) / 8 = 5242875
Мораль истории: если вы планируете использовать диски 4Kn в будущем, разделите ваши 512n дисков, используя кратные 8, и у вас все будет хорошо, если вы соответственно воссоздадите таблицу разделов.
Примечание: не забывайте ни о каком возможном клонировании GUID, не только для идентификатора диска, но и для идентификатора GUID раздела.