amarao (amarao_san) wrote,
amarao
amarao_san

Category:

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

Итак, в ходе баловства я случайно внёс в /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?
Tags: linux
Subscribe

  • ансибло-философия

    А вот я хочу продолжить думать умное про ансибл, ci/cd и прочую рабочую фигню между гитом и сервером. Классическое программирование стремится…

  • positive nagging

    Для повышения морали в коллективе было решено запретить токсичные и негативные сообщения в чате. Теперь все сообщения в чате выглядят так: Resolved…

  • Шли годы, а я учусь башу.

    Офигеть. Офигеть. echo <(echo hello) foobar /dev/fd/63 foobar Я этого честно не знал. Я знал, что в конце можно, а что можно в середине -…

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 10 comments

  • ансибло-философия

    А вот я хочу продолжить думать умное про ансибл, ci/cd и прочую рабочую фигню между гитом и сервером. Классическое программирование стремится…

  • positive nagging

    Для повышения морали в коллективе было решено запретить токсичные и негативные сообщения в чате. Теперь все сообщения в чате выглядят так: Resolved…

  • Шли годы, а я учусь башу.

    Офигеть. Офигеть. echo <(echo hello) foobar /dev/fd/63 foobar Я этого честно не знал. Я знал, что в конце можно, а что можно в середине -…