По работе однажды возникла задача перенести работающий сервер Windows 2008 с одного компьютера на другой, причем диски были геометрически разные, и разделы для переноса - тоже. Пришлось провести несколько испытаний на Windows XP, Windows 7 и... всё получилось. Использовался пакет ntfsprogs. Сначала диски были вставлены в один компьютер и размеры разделов скопированы с точностью до байта (fdisk). Затем c 1 раздела одного винта Windows был перемещен на 2 раздел другого винта: # ntfsclone --overwrite /dev/sdb2 /dev/sda1 Затем с помощью небольшого патча <tt>ntfsreloc.c</tt> проделан фокус по "выравниванию" геометрии, которая прошита внутри винды: $ wget 'http://wheel69.narod.ru/ntfsreloc.c' $ gcc -o ntfsreloc ntfsreloc.c # ntfsreloc -w -p /dev/sdb2 Ну и напоследок перенесем MBR: # dd if=/dev/sda of=/dev/sdb bs=512 count=1 В WinXP при этом пришлось еще поправить файлик-загрузчик c:\boot.ini, а в Win7, Win2008 это делается с помощью bcdedit Детали операций опущу из-за нехватки времени - главное алгоритм! Кстати, снять образ винды, кроме обычного # dd if=/dev/sda1 | gzip -c > file.img.gz # gunzip -c file.img.gz | dd of=/dev/sda1 Можно гораздо быстрее: # ntfsclone --save-image -o - /dev/sda1 | gzip -c > file.img.gz # gunzip -c file.img.fz | ntfsclone --restore-image --overwrite /dev/sda1 -
Linux/Windows Справочник v0.05 © 2007-2024 Igor Salnikov aka SunDoctor