воскресенье, 20 декабря 2009 г.

Движения разделов или grub потерялся...

Давно хотел синхронизировать свои наработки по учебе накопленные на ноутбуке с тем, что живет на домашнем компьютере.

Сразу стоит оговорится, что с незапамятных времен живет у меня на домашнем компьютере две ОС. Fedora Linux и еще одна известная проприетарная система. Так вот, когда ставил эти системы, то решил, что для домиков в Linux мне вполне хватит нескольких Гб, и почти весь диск (кроме /, /boot, /home и /var) отдал под общий раздел с форматированием присущим той самой проприетарной системе. Соответственно, на этот раздел легло тяжкое бремя хранения мультимедиа-контента и остального хлама. А у этого самого волшебного формата ФС есть неприятная особенность - он понятия не имеет о POSIX-правах доступа :( Здесь-то я как раз и "наступил на грабли"...

Т.к. при виде прав доступа к файлам в 777 у меня сердце кровью обливается, то на точку монтирования (с всем содержимым выли выданы чёткие права) и при попытке взять свежий слепок из svn-репозитария я получал много варнингов/ошибок, мол: "Хозяина, права выставить не могем. Совсем плёхо-плёхо..." И подобный неприятные ощущения всплывали периодически. Последней каплей стала попытка учебную директорию со всем содержимым закатать в bzr-репозиторий. Волшебная ФС вообще не поняла, чего от нее хотят и тупо хлопала глазками в пол...

И тут я понял! А нафига мне под мои видео-музыки так много пространства... Хауса и Друзей давно пора на болванки закатывать и в погреб!

Решил я подвинуть немного разделы :) Благо интересующие меня сущности в таблице разделов располагались близко друг от друга. Между ними буквально /var только затесался.
Дальше тривиально:
 - убил лишнее пор^W видео на большом разделе;
 - снял dump с /var и /home;
 - слил их от греха подальше на ноут;
 - подвинул раздел с неext ФС;
 - загрузился с Fedora 12 DVD в rescue-режиме;
 - cfdisk'ом снес /home и /var;
 - им же создал вышеозначенные разделы где и какие надо;
 - отформатировал свежие разделы, но уже в ext4;
 - восстановил содержимое /home и /var с помощью restore.

Отдельный поклон BSD'ям за dump/restore.

Бутаюсь и получаю первый болт :( Стартует голый GRUB и весело подмигивает курсором. Ну, думаю, таблицу изменял, может где MBR зацепил... Бутнулся обрабно в rescue mode. Провалился в /mnt/sysimage. Дошел ножками до конфигов grub'а. Осмотрел - все на месте. Проинсталил grub заново (grub-install hd0). Бутнулся...

И получил второй болт :( Теперь grub видел свой конфиг, но из меню отрабатывал только chainloader, который вел в ту ось, в которую мне не надо. На законных ядрах grub опять грустно разводил руками... Мол: "Нету здесь ничего, хозяйна... :'( " Как же так, я ж не двигал разделы в начале. Порядок, номера, все на месте осталось...

Ну чтож делать. Подался я гуглить на ноуте, параллельно загружаясь в rescue mode с диска. Нашел несколько несчастных с подобными симптомами, и почитал реплики сочуствующих. Так как проблема ограничивалась конфигом grub'а, то решил покурить его по-внимательнее:

# cat /boot/grub/grub.conf
default=0
timeout=2
splashimage=(hd0,2)/grub/splash.xpm.gz
hiddenmenu
title Fedora (2.6.31.6-166.fc12.x86_64)
        root (hd0,2)
        kernel /vmlinuz-2.6.31.6-166.fc12.x86_64 ro root=UUID=fff0ee4c-021c-45e4-84fd-de8bdd25e731 rhgb SYSFONT=latarcyrheb-sun16 LANG=ru_RU.UTF-8 KEYTABLE=us nomodeset
        initrd /initramfs-2.6.31.6-166.fc12.x86_64.img
title Fedora (2.6.31.5-127.fc12.x86_64)
        root (hd0,2)
        kernel /vmlinuz-2.6.31.5-127.fc12.x86_64 ro root=UUID=fff0ee4c-021c-45e4-84fd-de8bdd25e731 rhgb SYSFONT=latarcyrheb-sun16 LANG=ru_RU.UTF-8 KEYTABLE=us nomodeset
        initrd /initramfs-2.6.31.5-127.fc12.x86_64.img
title Other
        rootnoverify (hd0,0)
        chainloader +1

Через некоторое время до меня дошло, а чего это Other живет на (hd0,0), а /boot с ядрами (который идет следом в таблице разделов) на (hd0,2)! Правлю все на (hd0,1) и получаю полностью работоспособную систему.

Собственно был еще один болт. Разделы-то я подвинул, а новые UUID в fstab я не прописал :) Но система ткнула меня в эту оплошность при первой же попытке загрузиться... rescue mode -> blkid -> vim /etc/fstab и все в шоколаде.

Внимание, вопрос! Какого х%#?

Оно ж работало как-то? Или это волшебство произошло при обновлении на Ferora 12-ю, которое недавно перенесла домашняя машина... Если кто подскажет, я крепче спать стану...

Про merge bzr-веток расскажу позже, если чего интересное будет...