Назад | Перейти на главную страницу

Нужен совет по клонированию жесткого диска

Основной жесткий диск sda моего сервера Cent OS имеет много «автономных неисправимых секторов», и поэтому я планирую клонировать диск. Но клонирование всего диска не является возможным решением, поскольку это работающий сервер с 450 ГБ данных. Также привод медленно реагирует.

Мне нужно найти решение, которое поможет минимизировать время простоя. У меня есть план разбить на разделы другой диск, такой же, как основной. Затем клонируйте только mbr. rsync данных во всех разделах. Затем удалите основной диск и загрузитесь со второго диска.

Я не уверен, что это работает. Пожалуйста, дайте мне знать ваши предложения. Также приветствуются любые альтернативные решения.

Спасибо, Аджо

Подробно предполагая:

- / dev / sda - это живой диск, а / dev / sdb - его замена (вы можете дополнительно минимизировать время простоя, установив sdb в USB-корпус / шасси и выполнив все форматирование / синхронизацию через него)
-sdb как минимум того же размера, что и sda

ОБЯЗАТЕЛЬНО просмотрите его и настройте. Я делаю это, не зная заранее, как устроены ваши разделы, какие у вас точки монтирования и т.д. Обратите особое внимание на строку rsync, так как я предполагаю, что / - это sda1, а вы хотите, чтобы она была на sdb1.

  
# copy over the mbr. This has the added benefit over sfdisk in that the
# bootloader is also cloned over  
dd if=/dev/sda of=/dev/sdb bs=512 count=1

#OPTIONAL: grow partition of sdbX, where X is the target partition number  
#parted /dev/sdb  
#(parted) print
#(parted) resize X 

# make the new filesystem(s) and mount  
for i in $(ls -1 /dev/sdb?);do mkfs.ext3 $i;done  
for i in $(ls -1 /dev/sdb? | cut -f3 -d"/");mkdir -p /mnt/$i;\
umount /dev/$i;mount /dev/$i /mnt/$i;done  

# start the sync. exclude stuff we don't need to save time/space.  
echo -e "+ /dev/console\n+ /dev/initctl\n+ /dev/null\n+ /dev/zero\n\n- /tmp/*\n- \
/proc/*\n- /dev/*\n- /sys/*\n- /tmp/*\n- /mnt/*\n- /media/*" >> /tmp/exclude.rsync.lst  
rsync -az --exclude-from=/tmp/exclude.rsync.lst /. /mnt/sdb1/.  

#INSERT POST-SYNC TWEAKINGS HERE. doublecheck file/path locations, etc.

Поздравляю! сделано. Важными частями являются исключение и убедитесь, что вы добавили mbr ПЕРЕД изменением таблицы разделов.

Я думаю, что ваш план в порядке, вы также можете сначала передать все данные с помощью rsync, а затем сделать это снова в конце, чтобы синхронизировать оставшиеся изменения, которые произошли во время первого rsync. Я сделал нечто подобное, когда заменял старый сервер новым оборудованием, и это сработало.