Прехвърляне на вече инсталирана Debian Linux 5 Lenny система от PATA хард диск към SATA хард диск

Здравейте,

Имам няколко стари сървърчета, със сравнително големи хард дискове, но достатъчно нови, за да поддържата SATA твърди дискове. Тъй като съврърите са бюджетни, при закупуването им дори не е ставало дума за един твърд диск повече за изграждането на RAID1 масив.

В много от фирмите продаващи твърди дискове изчезват наличностите от старите ATA дискове, затова се принудих да закупя SATA твърд диск с обем (може би обем не е точното определение за големина на диска) 500GB.

Допуски:

  • root дяла е в /dev/hda1
  • новия диск е /dev/sda
  • използваме GRUB като boot loader

Предварителното планиране изглежда така:

  1. закачаме новия диск и зареждаме какъвто и да е линукс от компакт диск или USB флаш памет. Всичко върши работа, аз предпочитам system rescue cd. Може да използвате дори мрежовия инсталационен компакт диск на Debian 5 Lenny. Важно е да съобразите дали сте инсталирали i386 или amd64 порт, за да изберете същия порт, от който ще заредите ОС
  2. на новия диск създаваме същия брой дялове, както на стария диск. тук можем да променим големината на дяловете, ако случайно някой от тях не е достатъчно голям, аз лично използвам fdisk за разделянето
  3. Уточнявам процеса за /dev/hda1, който е root дяла. За другите дялове важи същата процедура. mount-ваме новия диск в произволна директория – например /mnt/sda1, копираме всичко от / в /mnt/sda1, няма нужда да се копира /dev, /proc, /sys, /tmp но тези директории трябва да се създадат празни.
  4. След като сме копирали всички данни от всички дялове, трябва да редактираме два файла /mnt/sda1/etc/fstab и /mnt/sda1/boot/grub/menu.lst. В първия файл заместваме всички hda с sda. Във втория файл променяме root=/dev/hda1 с root=/dev/sda1, това казва на boot loader-a, че трябва да търси ядрото на новия диск
  5. Трябва да инсталираме boot loader-a в MBR (Master Boot Record) на новия диск. Тази стъпка може да се изпълни по няколко начина в зависимост от това какъв диск използвате.  Ще разгледам по-универсалния вариант, при който не използваме инсталационния компакт диск на Дебиан. Трябва да пресъздадем proc и dev директориите в chroot средата, това става по следния начин:
    1. mount -o bind /proc /mnt/sda1/pro
    2. mount -o bind /dev /mnt/sda1/dev
    3. chroot /mnt/sda1
    4. Вече сме в chroot средата, остава единствено да инсталираме boot loader-a в MBR, това става с командата /usr/sbin/grub-install /dev/sda

Дотук добре, рестартираме сървъра, след като сме изключили стария диск за всеки случай. Всичко работеше перфектно докато не излезе нов пакет за ядрото на Дебиан, който обнових по стандартния начин apt-get update; apt-get upgrade.

Системата не зареди. Какво се случи?

При ъпдейт на ядрото се извиква един скрипт, наречен update-grub. Той не би трябвало да създаде проблем, но уви, не стана точно така. При стартиране на сървъра, той се опитва да намери ядрото на /dev/hda1, вместо на /dev/sda1. WFT? Нали работеше, сървъра е рестартиран няколко пъти и не е имало този проблем.

Оказа се, че трябва да се внимава и за коментираните редове, тъй като тази програма взема предвид и тях, за да генерира нови записи в /boot/grub/menu.lst. Реда:

# kopt=root=/dev/hda1 ro noapic

се използва от update-grub, така че този ред също трябва да се редактира, въпреки че е коментиран.

One thought on “Прехвърляне на вече инсталирана Debian Linux 5 Lenny система от PATA хард диск към SATA хард диск

Вашият коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

Този сайт използва Akismet за намаляване на спама. Научете как се обработват данните ви за коментари.