Допустим ситуацию, ваш жёсткий диск стал потихоньку кряхтеть и трещать и вы чувствуете что ему уже скоро крышка. Или вы просто хотите перенести систему на другой более вместительный жёсткий диск.
И конечно не хочется навредить системе и оборудованию а сделать всё грамотно. Ответ на вопрос "как это сделать грамотно?" представлен ниже.
Сначала подключаем новый hdd и с помощью cfdisk разделим его на нужные разделы ( в моём случае / и swap)
и сделаем файловую систему для / коммандой
Код: Выделить всё
# mkfs.ext3 /dev/sdc1 #Имя диска и раздел конечно указываем свои
и своп коммандой
Код: Выделить всё
# mkswap /dev/sdc2
Конечно знащие люди захотят спросить зачем я сделал своп в конце диска. Я почти не использую своп, пусть там и лежит. Конечно для компьютеров с недостаточным количеством памяти лучше использовать своп и делать его в начале диска.
далее нужно примонтировать наш новый раздел. в сюсе в директории /mnt обычно пусто. поэтому есть смысл создать там директорию и монтировать раздел в неё
Код: Выделить всё
# mkdir /mnt/temp
# mount /dev/sdc1 /mnt/temp
И копируем наш Linux на новый жёсткий диск
Код: Выделить всё
# cp -ax / /mnt/temp
Объясню смысл комманды:
опция -a нужна для того чтобы при копировании копировались ссылки, а так же сохранялись владельцы и права доступа к файлам, а так же временные характеристики файлов.
Опция -x нужна чтобы оставаться в пределах одной файловой системы. Например если у нас в /mnt/ смонтирован ещё один HDD большого объёма то cp не будет копировать всё что там есть на новый hdd (как нам и нужно)
Копирование может занять время. Особенно когда файлы копируются со всеми свойствами и привилегиями.
Всё. Копирование закончено. Теперь нужно Настроить загрузчик. Я предлагаю не мудрствовать лукаво а сразу вставить новый HDD и установить загрузчик через диск Suse (или другой подходящий диск) Или любой LiveCD.
Поставим новый HDD на место старого я предпологаю что будет использоваться SATA потому что использовать технологии из политехнического и полиэнтологического музея не целесообразно.
В моём случае (я заменяю HDD) надо воткнуть новый HDD в разьём SATA0 на материнской плате.
Далее грузимся с Suse DVD и в загрузчике выбираем опцию Rescue system
дожидаемся загрузки системы и далее начинаем колдовать. Вводим логин root и нам предлагают коммандную строку. прежде всего нужно смонтировать новый HDD. поскольку Rescue system даёт над только read only filesystem монтируем его прямо в /mnt
Код: Выделить всё
# mount /dev/sda1 /mnt # Тут новый HDD уже подключён первым и буква диска теперь a.
далее нам понадобятся устройства
Код: Выделить всё
# mount --bind /dev /mnt/dev
и переходим в наш линукс
Код: Выделить всё
# chroot /mnt
Если всё сделано правильно мы теперь можем работать с нашей системой. нам нужно поставить grub.
заходим в него
Код: Выделить всё
# grub
и вводим комманду
Код: Выделить всё
grub> setup --stage2=/boot/grub/stage2 (hd0) (hd0,0)
Если у вас система стоит на sda2 то в конце замените (hd0,0) на (hd0,1)
вот как граб видит наши HDD :
Код: Выделить всё
(hd0) -sda
(hd0,0) - sda1
(hd0,1) - sda2
(hd1) - sdb
(hd1,0) - sdb1
(hd1,1) - sdb2
и так далее.
Объясню смысл комманды. --stage2 указывает на расположение stage2 файла (удивительно, да? ) (hd0) это то устройство на которое будет производится установка загрузчика (в нашем случае это mbr первого диска). (hd0,0) это то устройство на котором граб будет искать stage
Итак загрузчик установлен. Выйдите из граба коммандой
Код: Выделить всё
grub> quit
Далле во избежание лишних беспокойств сразу проверьте файлы /boot/grub/menu.lst и /etc/fstab.
Вы могли изменить порядок следования разделов. соответсвенно проверьте чтобы в файле /boot/grub/menu.lst все опции
root они должны указывать на ваш / раздел (таблица выше вам в помощь)
опции root=/dev/sd* ядра тоже должны указывать на ваш / раздел. опции resume=/dev/sd* должны указывать на swap раздел.
в файле fstab тоже проверьте соответствие всех точек монтирования и при необходимости удалите несуществующий диск (который мог появится когда мы первый раз вставили новый HDD и уже нам не нужен)
Вот и всё. Теперь можно со спокойной душой перезагружаться и использовать полноценно новую систему.
Примечания:
Код: Выделить всё
1) В данной статье все префиксы # и grub> являются просто приглашением к вводу комманд. Их вводить не нужно.
2) Эта статья сделана на примере suse. конфигурационные файлы могут незначительно менятся в других дистрибутивах.
3) Пользователи ubuntu могут испытывать затруднения при редактировании /etc/fstab. очень рекомендую хотя бы распечатать первоначальный /etc/fstab. а так же внимательно рассмотреть uuid или id дисков. Насколько я помню в ubuntu /etc/fstab пишется весьма уникальным способом.
4) не копируйте систему коммандой dd. Неумелое обращение с ней может привести к нарушенной работоспособности диска.