Перенос системы на другой диск

 



Внимание! Если ты не вкурсе про основы разбиения диска, не знаешь что такое головка,
цилиндр и пр., что такое слайс, чем он отличается от партишена, как создавать и монтировать
файловые системы – тогда описанное ниже может привести тебя к потере диска.


Кто не спрятался, я не виноват!

 

Однажды ночальнег мягко предложил поставить сервер в мой кабинет. Пришлось бороться с шумом, главным источником которого был старинный Quantum Fireball на 8 гиг. Купил новый винт, но меньше 80 gb уже не продают, а BIOS такое не видит. И загрузки с USB нет. Ну, к этому я был готов. Чтобы древний BIOS увидел новый диск, режем его размер до 32 гб с помощью замечательной утилиты MHDD. Не хочу описывать здесь, как это делается – аффтар жоско рекомендует предварительно изучить мануал, и я с ним согласен. Хотя… если тебе пофиг и не жалко случайно убить какой-нинаебуть винт – ниже идет краткая инструкция. Код активизации программы = указанное число*2+1; войдя, выбери нужный диск, потом командой HPA обрежь его до 32 гб и скажи, что это перманентно. Можно сделать все по-другому -  пропатчить BIOS (например, рабочий патч для Award есть на www.rom.by, можно юзать диски до 120 гб), но в моем конкретном случае это было невозможно. Да и не надо мне стока гиг. Итак, диск на 80 гб стал диском на 32 гб. Отключаем всех ненужных демонов (я оставил только sshd), выключаемся, ставим новый диск, загружаемся в single user mode и приступаем.

Копируем ad0 на ad3 (процесс занял у меня около получаса):

 

# fsck -f

# dd if=/dev/ad0 of=/dev/ad3 bs=1024k

 

Снимаем ad0, ставим на его место новый диск. Все прекрасно работает, за исключением того, что из 32 гб используется только 8. Значит, будем увеличивать слайс (если надо, конечно). Загружаемся в single user:

 

# fdisk

cylinders=62024 heads=16 sectors/track=63

/dev/ad0: 62024 cyl 16 hd 63 sec

Part        Start        Size Type Flags

   1:          63    16777089 0xa5 0x80

 

Видим, что размер слайса равен 16777089*512=8192 mb. Нам надо заюзать весь диск (62024*16*63=30527 мб). Юзаем:

 

# fdisk –i /dev/ad0

...

Do you want to change it? [n] y

Supply a decimal value for “size” [62520129]  те самые 30527 мегабайт

Are we happy with this entry? [n] y

...

Should we write new partition table? [n] y

...

 

Говоря по-русски,  fdisk сам предложил нам расширить слайс на весь диск, осталось только соглашаться.

Щаз будем создавать новую партицию. Для тех, кто не знаком с vi или презирает его (как я), команды:

o – open new line below cursor

D – delete to end of line

i – insert text

:w – save file

:q – quit

:q! – force quit w/o saving

 

# bsdlabel –e /dev/ad0s1

 

#      size   offset    fstype  [fsize bsize bps/cpg]

...

e:  7339905  9437184    4.2BSD    2048 16384 28552     это последняя описанная партиция

f: 45743040 16777089    4.2BSD    2048 16384 28552     эту мы только что дописали

 

Как считали? 9437184+7339905=16777089 – начало новой партиции, 62520129-16777089=45743040 – ее размер.

Делаем новую файловую систему и монтируем ее в каталог /e:

 

# newfs /dev/ad0s1f

# cd /

# mkdir /e

# mount /dev/ad0s1f /e

# ee /etc/fstab там добавим строчку про нашу новую fs.

# reboot

 

Кстати, вышеперечисленное можно (было бы) сделать в sysinstall намного быстрее и безопаснее, но sysinstall почему-то не смог.

 


В начало

Сайт управляется системой uCoz