February 20th, 2009

404

к вопросу о стабильности... Windows TAI Linux

В принципе, общеизвестным фактом является то, что избыток софта под винды "засирает" систему. Связано это во многом не с кривой виндой как таковой, а с тем, что софт любит регистрировать свои хэндлеры на обработку файлов, регистрирует кучу OLE (не факт, что корректно написанного), прописывает всякие хитрые файлики в виде сервисов, библиотек, плагинов, просто подкладывая инф-файлы виндам на съедение...

Постепенно система начинает в поведении отклоняться от "референсного". И в тот момент, когда грань "нормально" пройдена, по моему многолетнему опыту возни с виндами, обратного пути нет. Да, можно расковырять тридцать проблем. Но не триста, и не тысячу. Выяснить "что именно поломали" иногда почти невозможно. Может быть очередная суперутилита прорегистрировала кривого провайдера WMI, из-за чего теперь при запуске explorer'а наблюдаются несусветные лаги. А может, дело просто в расширении ShellDlgOpen() (или как там его), которое осталось от прошлой "украшалки". А ещё может оно таки прорегистриовало в системе драйвер виртуального устройства, файл которого теперь хоть и запускается, но в судорожных попытках найти оставшийся кусок от снесённой игрушки течёт памятью? А может, эта милая программа забыла при сносе подчистить компоненту для GINA, из-за чего логин тормозится до ужаса?

Таких прибежищ - миллион. Это эмпирическое правило - чем больше ставится/сносится софта, тем хуже становится системе.

Однако, с линуксом ситуация иная. Да, разумеется, кривой пакет вам может много чего поломать. Но это должен быть ОЧЕНЬ кривой пакет. (или, привет слака и бздя, разбирайся сам что там поправили?). Но как правило софт не мешает друг другу. Совсем не мешает. Если сравнить количество софта под линуксом на не особо церемонящейся с местом машине и аналогичной же винде, разница становится заметной. От того, что у меня появилось N+1 программ ничего не меняется. Редко появляется ещё один демон, делающий что-то важное, но это вполне ощутимое изменение. В остальном софт "мирно живёт рядом".


Если не понятно о чём - представьте себе виндовый компьютер, на котором стоит пара сотен системных утилит (а-ля систем рекавери, NDD, etc), пяток графических редакторов, несколько музыкальных редакторов, пара десятков игрушек, сколько-то серверного софта (ещё с десяток), огромная куча софта для разработки, отладки, файрвол, снифферы, сканеры портов (одна установка wincaps, да-да...). Просто представьте себе меню "пуск" в пять столбиков на 19" мониторе.

Вот. А оно живёт и не жужжит. Если не считать страдающего подагрой WD, коий я сейчас буду тестить.
404

Как весело сломать и починить линукс

Итак, в ходе баловства я случайно внёс в /etc/modprobe.d/blacklist "свой" модуль для сата - sata_nv. И случайно его же прописал в блэклист в /etc/initramfs-tools/modules (строчка blacklist sata_nv).

А потом случайно же сделал дважды update-initramfs -u.

bak-файл затёрся, разумеется.

Что имеем мы при загрузке? Грузится ядро, пытается подмонтировать корневую фс.. а там пусто. Т.е. нет ни фс, ни одного из дисков. Модуль-то нужный мы грузить запретили.

Что делает в таком случае windows? честно пишет кракозябры на чистом оемном русском языке, мол, inaccessible boot device. До свидвания.

Что пишет линукс я не дождался, он долго-долго над этим самым root fs думал.

Но как это чинить? В Windows - берётся диск с дистрибьютивом, дисковод, дискетка с дровами - и в бой, переставлять винды. (если у вас простой драйвер, но вы прибили его - то просто, переставлять, чтобы восстановить драйвер).

Как же можно развлечься с линуксом?

во-первых, нам надо увидеть шелл. редактируем строку вызова в грубе так, чтобы root=/. После этого система вывалится в initramfs, в которой любезно есть всё, что нужно для счастья - busybox, udev, блекджек и немножко шлюх.

Дальше всё просто.
cd /etc/modpobe.d
vi modules
G
dd
:wq
modprobe sata_nv

дальше нам надо создать special files для внезапно обнаружившихся устройств... как это сделать руками, я, позорно, не знаю. Т.е. знаю - mknod, но как узнать minor/major - не знаю. Увы. Подскажете, буду признателен.

А тем делом, у нас есть комплект из шлюх и блэкджека:

/scripts/pre-mount/udev

запустили. Создалось всё, что нужно для счастья. Наша рутовая фс в т.ч. (в моём случае /dev/sdc2).

mkdir /blackjack
mount /dev/sdc2 /blackjack -t ext3
chroot /blackjack.

Ура, мы дома. Нифига не работает, но мы дома.

/bin/mount /usr
/bin/mount /var
cd /etc/modprobe.d/
/bin/nano blacklist (I HATE NANO, положите на место vi!)
cd /etc/initramfs-tools/
/bin/nano modules
/usr/sbin/update-initramfs -u -v
reboot

ура. Шлюхи потерялись по дороге, а блэкджек был.

Масса экспиренса и веселья.

и всё-таки, как узнать major/minor для mknod в условиях initramfs busybox?
404

home credit

Зашёл, спросил сколько у них там стоит кредит (скорее из любопытства). 57%. Круто. Круто. Шоб я так жил...