Обновление Debian Lenny на Debian Squeeze.
Собственно к чему этот пост. Потому как хочется прокричать «Кривее» системы я еще не видел, за свою историю администрирования.
И так что я имею:
RAID1 на / + RAID1 на двух дисках по 750 гигов где лежит всякая дрянь типов фильмов и т.д…
Вроде бы делал все штатно т.е aptitude update && aptitude upgrade мне вежливо спросили, предложили решение зависимостей. Ничего такого не было в зависимостях, только сторонний софт полетел, который сам собирал, да и бог бы с ним. Обновилось без ошибок, говорят надо перезагрузиться. Вот она перезагрузка:
Alert! /dev/disk/by-uuid/646afa5e-32d….. does not exist. Dropping to a shell.
Я невзрачно глянул на всю эту картину, начал вкуривать и понял что поставился как то криво GRUB2 (всеми нахваленный) с криво выполенным update-initramfs -u. Начал разбираться:
Первое что мне росилось в глаза так это то, что в /boot/grub/device.map перечислены все 4 мои диска! Но не просто перечислены, а в виде UUID. В Lenny просто писалось (hdo) /dev/sda, (hd1) /dev/sdb. Не долго думаю беру аварийный диск от RedHat 5.4 гружусь в режиме linux rescue, делаю chroot окружение:
mkdir /mnt/system
mount /dev/sda1 /mnt/system (sda1 один из дисков системного райда)
mount -o bind /dev /mnt/system/dev
mount -o bind /selinux /mnt/system/selinux
mount -t proc none /mnt/system/proc
mount -t sysfs none /mnt/system/sys
chroot /mnt/system
И работаю уже непосредственно на своей системе.
Одно большое замечание:
Т.К Я МОНТИРОВАЛ ЧИСТО РАЗДЕЛ, А НЕ МОЙ СОФТОВЫЙ РАЙД, НУ НЕ СТАЛ Я С НИМ ЗАМОРАЧИВАТЬСЯ, И ВЫКИНУЛ ВТОРОЙ ДИСК ПОЛНОСТЬЮ ИЗ СИСТЕМЫ КОМАНДУ update-initramfs -u НИ В КОЕМ СЛУЧАЕ НЕ ДЕЛАТЬ!!!
И так после гуляния по /boot/grub и чтения кучи конфигов понял что все теперь идет по UUID. UUID получить не сложно, есть команда blkid и вижу на свой /dev/md0. В общем изменил device.map на свой привычный сделал update-grub, мне сгенирировался новый grub.cfg, но не тут то было вместо UUID он везде прописал /dev/sda, а именно:
/boot/vmlinuz-2.6.26-2-686 root=/dev/sda
А надо строчку вида:
/boot/vmlinuz-2.6.26-2-686 root=UUID=646afa5e-a3d2-4ce1-9899-c9566e7b10e6
Где 646afa5e-a3d2-4ce1-9899-c9566e7b10e6 собственно мои UUID устройства md0.
И еще set root='(md0)’ представлял в виде set root='(hd0, floppy)’ почему так и не понял. В общем все я сохранил и ребут и вуаля система загрузилась.
Прошел как бы месяц и вот вчера вечером то я решил повыкидывать все лишние ядра, и местечко почистить, да и смысл их хранить? В общем удалил, и опять та же самая ситуация. Начал копать, и выяснил что это БАГ нового загрузчика GRUB2 а именно при включении это фоновой картинки почему то происходит такое вот поведение именно только с софтовым райдом, с обычными дисками все четко. Решение:
- Вернуть систему к жизни вышеописанным способом
- Сходить в /etc/default
- Открыть конфиг grub
- И раскоментировать строку GRUB_TERMINAL=console
- Сделать update-grub и наслаждаться жизни
Строкой GRUB_TERMINAL=console мы отключили фоновую картинку, т.е вернули старый синий для глаз приятный фон. И при чем теперь загрузчик автоматически ставиться на оба диска в софтовом RAID1, что не может не радовать! 😆
Копирайт поста мой, если что кто-то копирует к себе в блог или на пост, то не забываем про меня. Дабы мне было приятно.
Жду комментариев.