LINUX.ORG.RU
ФорумAdmin

Загрузка / (корня) на reiserfs


0

0

После полной переустановки slackware 13.0 на 13.1 поменял файловые системы всех разделов с ext3 на reiserfs. с инсталяционным huge ядром 2.6.33.4 все удачно запустилось. но после пересборки ядро не может достучаться до корневой ФС. конфиг взял от старого ядра (2.6.33.3) из 13.0-й слаки.

при загрузке выдается примерно следующее:
cheking root filesystem:
fsck from util-linux ... ...
Failed tp open device '/dev/sda3': no such file or dir
далее совет запустить fsck и возможность зайти под рутом в single-mode.
если зайти в предложеном однопользовательском режиме, то в /dev никаких sdX или хотя бы hdX нет, но файлы с корневого раздела можно читать. mount выдает что-то тако
/dev/root / reiserfs ... ...
Итого изменений было всего два: переход с ext3 на reiserfs и пересборка ядра 2.6.33.4 на конфиге от 2.6.33.3.
Догадываюсь, что не хватает какого-то модуля или опции в ядре. но как определить какого? да и почему с ext3 все грузилось без проблем?

на всякий случай:
lspci -v(токлько для винта):
00:1f.2 SATA controller: Intel Corporation 82801GBM/GHM (ICH7 Family) SATA AHCI Controller (rev 02) (prog-if 01 [AHCI 1.0])
Subsystem: ASUSTeK Computer Inc. Device 830f
Kernel driver in use: ahci

cat /etc/fstab:
/dev/sda2 swap swap defaults 0 0
/dev/sda3 / reiserfs defaults 1 1
/dev/sda1 /boot ext2 noauto,defaults 1 2
/dev/sda4 /home reiserfs defaults 1 2
devpts /dev/pts devpts gid=5,mode=620 0 0
proc /proc proc defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0

в ядре включена поддержка
Serial ATA and Parallel ATA drivers --->

  • Verbose ATA error reporting
  • ATA ACPI Support
  • SATA Port Multiplier support
    <*> AHCI SATA support
  • ATA SFF support
    <*> Intel ESB, ICH, PIIX3, PIIX4 PATA/SATA support
    АTA/ATAPI/MFM/RLL support - полностью отключена
    Поддержка reiserfs вкомпилена в ядро (НЕ модуль)

    cat /etc/lilo.conf

    compact

    lba32

    append=" vt.default_utf8=1 acpi_osi=Linux"

    boot = /dev/sda

    prompt

    timeout = 50

    change-rules

    reset

    image = /boot/vmlinuz

    root = /dev/sda3

    label = Linux

    read-only

    image = /boot/vmlinuz-huge-smp-2.6.33.4-smp

    root = /dev/sda3

    label = LinuxHuge

    read-only



Последнее исправление: eax0r (всего исправлений: 2)

Ответ на: комментарий от Deleted

>Именно initrd и позволяет не держать эту кучу в оперативной памяти.
вспоминаем школу...так...«повторение мать учения», так вроде!?
у меня НЕТ лишних модулей/дров!
читать до просветления!

megabaks ★★★★
()
Ответ на: комментарий от megabaks

вспоминаем школу...так...«повторение мать учения», так вроде!? у меня НЕТ лишних модулей/дров! читать до просветления!

Да ладно, ладно. Верю. =)

Deleted
()
Ответ на: комментарий от Deleted

>ЕМНИП монолит такое позволяет разве что с редхатовскими патчами.
это когда было?
редхат - почти синоним апстрима - выводы сделаешь?

megabaks ★★★★
()
Ответ на: комментарий от megabaks

редхат - почти синоним апстрима - выводы сделаешь?

Ты ядро редхатовское когда-нибудь видел?

Deleted
()
Ответ на: комментарий от Deleted

Мне тут кстати когда-то iZENчег рассказывал, дескать во FreeBSD вообще всегда имена блочных устройств (SATA) постоянны.

Я про это НИКОГДА не говорил.

iZEN ★★★★★
()
Ответ на: комментарий от Deleted

и бздя при загрузке встаёт колом.

man glabel

(Код модуля GEOM_LABEL с некоторых пор по дефолту вкомпилирован в GENERIC-ядро.)

iZEN ★★★★★
()
Ответ на: комментарий от Deleted

Всё же интересно, почему люди ТАК мучаются выбором.

iZEN ★★★★★
()
Ответ на: комментарий от megabaks

[для справки]

редхат - почти синоним апстрима - выводы сделаешь?

Ядро Red Hat сохраняет Linux ABI на протяжении нескольких лет, а в апстриме этого не придерживаются. Поэтому патчи от Red Hat занимают по объёму чуть ли не 100% кода ванильного ядра с kernel.org. То есть ядро от Red Hat совсем другое, сильно отличающееся от апстрима.

iZEN ★★★★★
()
Ответ на: [для справки] от iZEN

наработки со временем (не сразу естессно) ппадают в апстрим...

megabaks ★★★★
()
Ответ на: комментарий от eax0r

где-то я промахнулся при пересбоки ядра. вот думаю, а можно ли было так делать? cd /usr/src/linux (2.6.33.4) make mrproper cp config-my-2.6.33.3 ./.config make menuconfig

именно так и нужно сделать )

sprutos ★★★
()
Ответ на: комментарий от Deleted

>initrd позволяет в качестве / системы указать UUID или метку раздела

где это он позволяет? загрузчику можно и явно указать, а в fstab у меня и монолит с UUID работает

Это очень сильно экономит нервы на системах, где имена у блочных устройств могут меняться


и еще это геморой, при реинициализации уст-в, пересоздание своп-раздела например, сбивает UUID

Кроме того, без этого невозможно сделать нормальный Live{CD,DVD,USB}-дистрибутив


важная фишка на моём десктопе, ага ))

initrd позволяет иметь универсальное ядро, работающее на любом железе


опять 25???

а как вам такой вариант - в системе несколько ядер, одно универсальное (дистрибутивное) и как минимум одно под КОНКРЕТНОЕ железо и задачи? )))

в чем плюсы монолита - малый размер в сумме (2.0M против 1.6M + модули на 2.4M); выше скорость работы/пересборки; защищенность от некоторых видов взлома.

sprutos ★★★
()
Ответ на: комментарий от anon_666

чего подробней-то? представь, была прослойка для модулей, и вот ее убрали. хотя, это может и неверные данные. я больше практик, чем теоретик - мне проще самому пересобрать ядро за несколько минут и потом проверить его производительность, чем на форуме торчать с пустыми вопросами.

на практике же проверено, время отклика у монолита меньше, хоть и не на большую величину.

sprutos ★★★
()
Ответ на: комментарий от eax0r

загружаются init, udev. но! после окончательной загрузки в /dev/ нет никаких sdX. /dev/sda3 каким-то для меня волшебным образом монтируется, а /dev/sda3 нет


Ну правильно, в ядре есть драйвер винта, он его «видит», умеет с ним работать, вот и смог подключить корень (в виде /dev/root), а дальше запускается fsck, котору как параметр передаётся файл устройства /dev/sda3, которого как обычного файла в ФС тупо нет. Fsck естественно ругается.
Попробуйте как-нибудь загрузиться, подключить корень и для наполнения /dev/ выполнить: cd /dev; /sbin/MAKEDEV generic
См. «man MAKEDEV».
Ядро пересобирать не нужно. Если бы оно не видело винтов - ни до каких бы /dev/root и дело не дошло.

P.S. Ну и говнище развели по поводу initrd. Кому это надо - пользуются, кому нет - не пользуются, орать-то зачем ?

spirit ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.