Случилось мне проапгрейдить жесткий диск своего ноутбука на более емкий и быстрый. Естественно, возникла необходимость переноса на него тщательно вылизанной и настроенной операционной системы со старого винчестера. Поступил следующим образом:
- На новом диске установил необходимую на новой работе Windows 7, заняв ей два первичных раздела.
- Загрузившись с Gparted Live, дополнительно создал еще один первичный раздел под swap линукса.
- На оставшемся пространстве создал большой дополнительный раздел.
- В дополнительном разделе выделил логический ext4 для Ubuntu, и логический же NTFS в качестве общего диска для обеих ОС.
Дальше загружаемся в нашу любимую систему, и новый, уже размеченный жесткий диск присоединяем шнурком через usb, после чего открываем терминал и создаем в директории /mnt поддиректории:
# sudo mkdir /mnt/oldsys
# sudo mkdir /mnt/newsys
Монтируем разделы на созданные директории
# sudo mount /dev/sda2 /mnt/newsys # для монтирования корневого раздела нового винта
Копируем данные из директории /mnt/oldsys в /mnt/newsys. Для этого я использовал утилиту rsync:
# sudo rsync -qaHEAXh --progress /mnt/oldsys/* /mnt/newsys
Следующим номером нашей программы будет правка файла /etc/fstab: по умолчанию в fstab вместо имен файловых систем (например: /dev/sdb1) используются их UUID, если не планируется подключать диск к разным SATA каналам или переносить его на другой компьютер, то можно явно прописать имя файловой системы, в нашем случае выглядеть это будет так:
proc /proc proc defaults 0 0
/dev/sda1 swap swap defaults 0 0
/dev/sda2 / ext4 errors=remount-ro 0 1
В противном случае, если требуется использовать UUID, то его можно получить с помощью утилиты blkid:
# sudo blkid /dev/sda2
/dev/sda2:UUID="e681c419-5ba5-4b78-ac00-def757e65585" TYPE="ext4"
Теперь необходимо перенести grub. Перед установкой груба я сделал следующие шаги (не обязательно):
- Размонтировал /mnt/oldsys: sudo umount /mnt/oldsys
- Далее с помощью команды mount следует сделать перемонтирование каталогов /dev и /proc в каталоги /mnt/newsys/dev и /mnt/newsys/proc соответственно, используя при этом опцию --bind — это нужно для того чтобы в окружении chroot в директории /dev имелись файлы устройств /dev/sda*:sudo mount --bind /dev /mnt/newsys/devsudo mount --bind /proc /mnt/newsys/proc
Чрутимся в /mnt/newsys/:
# sudo chroot /mnt/newsys /bin/bash
Создаем device.map для grub
# sudo grub-mkdevicemap
В результате выполнения этой команды в /boot/grub/ будет создан файл device.map следующего содержания (на разных системах будет выглядеть по разному):
(hd0) /dev/sda
(hd1) /dev/sdb
Создаем конфигурационный файл для grub
# grub-mkconfig > /boot/grub/grub.cfg
Если ошибок не вылезло и груб сказал примерно следующее
Generating grub.cfg…
Found linux image: /boot/vmlinuz-2.6.31-17-generic
Found initrd image: /boot/initrd.img-2.6.31-17-generic
Found linux image: /boot/vmlinuz-2.6.31-16-generic
Found initrd image: /boot/initrd.img-2.6.31-16-generic
Found linux image: /boot/vmlinuz-2.6.31-15-generic
Found initrd image: /boot/initrd.img-2.6.31-15-generic
Found linux image: /boot/vmlinuz-2.6.31-14-generic
Found initrd image: /boot/initrd.img-2.6.31-14-generic
Found memtest86+ image: /boot/memtest86+.bin
done
Устанавливаем grub. Так-как у меня в системе загрузочным диском будет выступать /dev/sda, то и устанавливаю я загрузчик в mbr этого винта:
# sudo grub-install /dev/sda
(здесь вместо /dev/sda можно поставить hd0 см. файл /boot/grub/device.map).
Вывод этой команды примерно такой:
Installation finished. No error reported.
This is the contents of the device map /boot/grub/device.map.
Check if this is correct or not. If any of the lines is incorrect, fix it and re-run the script `grub-install'.
(hd0) /dev/sda
(hd1) /dev/sdb
Уходим из чрута
# exit
Делаем umount для /dev, /proc и /mnt/newsys
# sudo umount /mnt/newsys/dev
# sudo umount /mnt/newsys/proc
# sudo umount /mnt/newsys/
Перезагружаемся, если все сделано правильно, то система должна загрузится без проблем.
Подсмотрено здесь
Комментариев нет:
Отправить комментарий