воскресенье, 29 августа 2010 г.

Рассказ о том, как я жесткий диск на ноуте менял

Был у меня, в общем то, достаточный для работы жесткий диск объемом 250 Га, но не жилось мне спокойно, и захотелось мне поставить жесткий диск на 500 Га.
Сказано - сделано. Винт купил и поставил. Надо переносить систему. Переустановка ОС - это не наш путь, разумеется.
Далее будет описано что я делал (и, что не нужно было делать), а в конце как все таки у меня получилось через одно место.
Итак на моем старом винте было три раздела: ntfs, ext4 и swap.
Новый жесткий диск я воткнул в ноутбук, а старый подключил по usb через переноску.

Самое логичное, было бы сделать

dd if=/dev/sdb of=/dev/sda bs=4096 conv=sync,noerror

Но этот способ не сработал.
Разделы создались, но ФС у них не определилась. Из за чего пришлось бы их переформатировать.
Собственно того же результата можно было добиться просто скопировав загрузчик и таблицу разделов:

dd if=/dev/sdb of=/dev/sda bs=512 count=1

После чего я по очереди убил каждый раздел на новом жестком диске и gparted'ом перенес их со старого жесткого диска. В результате, конечно же, загрузочный сектор и таблица разделов у меня потерлись.
Всевозможные попытки осуществить восстановление grub'а, осуществляемые при помощи гугления результата не дали.
Что в итоге я сделал.
Раздел с ntfs оставил как есть (т.е. полностью клонированным со старого жесткого диска), на раздел ext4, на котором у меня стоял Linux, я заново установил дистрибутив. Только устанавливать нужно обязательно тот дистрибутив, который стоял до этого, потому что иначе может не получиться.
Таким образом у меня пересоздалась таблица разделов и загрузочный сектор (вообще таблица разделов конечно была).
Затем я все полностью стер на Линуксовом разделе и скопировал при помощи утилиты rsync все со старого линуксового раздела. Все это я делал загрузившись с LiveCD.
rsync в отличии cp (даже cp -a) нормально копирует скрытые файлы, т.е. те, которые начинаются с ".". Обе команды rsync -a и cp -a могут копировать атрибуты файлов и права доступа.
Выглядит команда так:

rsync -a /.../.../ /.../.../

Закрывающий слеш существенен, поскольку без него получится не совсем то что нужно.
Что бы система начала загружаться нужно еще в файлах
/boot/grub/grub.cfg и /etc/fstab
поменять uuid разделов на новые.
Узнать их можно командой
$blkid

Ну и напоследок, поскольку у меня появилось теперь дофига свободного места, я создал 250 гиговый раздел и примонтировал его к /home
Для этого я все тем же rsync'ом перенес все файлы (сидя на LiveCD) на отведенный для этого раздел и прописал в его fstab:

# /home
/dev/sda4 /home ext4 defaults,noatime,errors=remount-ro 0 2

1 комментарий:

  1. жизнь прекрасна и удивительна, если дома нету компа

    ХАМ

    ОтветитьУдалить