Рассказ о том, как я жесткий диск на ноуте менял
Был у меня, в общем-то, достаточный для работы жесткий диск объемом 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