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)

Глупо конечно, но вдруг в ядре не включено block device support?

anon_666
()

Неудивительно. Наверняка старое ядро видит /dev/sda3, а пересобранное - /dev/hda3 или что-нибудь типа /dev/hz111. Что за манера пересобирать ядро, не выучив действие каждой опции как свои пять пальцев...

Засунть в initrd busybox и разузнай, как твое мега-ведро видит винты. После этого прописывай root=бла-бла-бла

anonymous
()

А, теперь понятно. Запиши этот /dev/root в fstab и успокойся.

anonymous
()

><*> AHCI SATA support

[*] ATA SFF support

<*> Intel ESB, ICH, PIIX3, PIIX4 PATA/SATA support


не понимать! однозначно не понимать!
зачем дрова на ICH если есть AHCI?

megabaks ★★★★
()

если зайти в предложеном однопользовательском режиме, то в /dev никаких sdX

Я не знаю, как там в слаквари, но они создаются udev из initrd обычно. initrd я не вижу, поэтому решение - создать их вручную.

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

Ну так статически созданы, не? Все просто, чтобы смонтировать рут - нужен /dev/sda3, кто-то или что-то должно его создать. Можно создать статически, можно udevом. Но чтобы удев запустить - нужно смонтировать рут. Переходим к началу :-).

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

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

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

P.S. Возможен другой вариант, udev запускается из инита, перед маунтом, и создает /dev/sda3, но тут вопрос - как оно сделано в слакваре, а этого я не знаю.

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

Я в курсе, что такое инитрд, и не один уже собирал сам :-).

и что значит статически?

mknod /dev/sda3 d 8 3

при загрузке ядро само находит и нормально монтирует без всяких костылей

Ну я выше написал, как это возможно, у тебя init запускает udev перед монтированием, но у тебя гента, а как в слаке - неизвестно.

vga ★★
()
Ответ на: комментарий от megabaks
[    1.585790] scsi 3:0:0:0: Direct-Access     ATA      WDC WD2500AAKS-0 01.0 PQ: 0 ANSI: 5
[    1.595202] sd 3:0:0:0: [sda] 488397168 512-byte logical blocks: (250 GB/232 GiB)
[    1.595237] sd 3:0:0:0: Attached scsi generic sg1 type 0
[    1.613878] sd 3:0:0:0: [sda] Write Protect is off
[    1.623091] sd 3:0:0:0: [sda] Mode Sense: 00 3a 00 00
[    1.623103] sd 3:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    1.632535] hub 1-0:1.0: state 7 ports 8 chg 0008 evt 0000
[    1.632538] hub 1-0:1.0: port 3, status 0501, change 0000, 480 Mb/s
[    1.632543] ehci_hcd 0000:00:1d.7: port 3 low speed --> companion
[    1.632610]  sda: sda1 < sda5 sda6 > sda2 sda3 sda4
[    1.668133] sd 3:0:0:0: [sda] Attached SCSI disk
[    1.691418] ehci_hcd 0000:00:1d.7: GetStatus port 3 status 003002 POWER OWNER sig=se0 CSC
[    1.691429] hub 1-0:1.0: state 7 ports 8 chg 0000 evt 0008
[    1.695068] REISERFS (device sda2): found reiserfs format "3.6" with standard journal
[    1.704368] REISERFS (device sda2): using ordered data mode
[    1.715280] REISERFS (device sda2): journal params: device sda2, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30
[    1.734676] REISERFS (device sda2): checking transaction log (sda2)
[    1.744388] hub 3-0:1.0: state 7 ports 2 chg 0000 evt 0000
[    1.744512] hub 3-0:1.0: state 7 ports 2 chg 0000 evt 0002
[    1.744516] uhci_hcd 0000:00:1d.1: port 1 portsc 01a3,00
[    1.744520] hub 3-0:1.0: port 1, status 0301, change 0001, 1.5 Mb/s
[    1.789881] REISERFS (device sda2): Using r5 hash to sort names
[    1.799424] VFS: Mounted root (reiserfs filesystem) readonly on device 8:2.
[    1.846218] devtmpfs: mounted
[    1.848368] hub 3-0:1.0: debounce: port 1: total 100ms stable 100ms status 0x301
[    1.855796] Freeing unused kernel memory: 336k freed
[    1.865665] BFS CPU scheduler v0.318 by Con Kolivas.
[    1.950334] usb 3-1: new low speed USB device using uhci_hcd and address 2
[    2.053257] usb usb2: suspend_rh (auto-stop)
[    2.053276] usb usb4: suspend_rh (auto-stop)
[    2.053293] usb usb5: suspend_rh (auto-stop)
[    2.086248] usb 3-1: skipped 1 descriptor after interface
[    2.091246] usb 3-1: default language 0x0409
[    2.104245] usb 3-1: udev 2, busnum 3, minor = 257
[    2.104246] usb 3-1: New USB device found, idVendor=09da, idProduct=000a
[    2.114159] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    2.124245] usb 3-1: Product: USB Mouse
[    2.134243] usb 3-1: Manufacturer: A4Tech
[    2.214151] usb 3-1: usb_probe_device
[    2.214153] usb 3-1: configuration #1 chosen from 1 choice
[    2.216248] usb 3-1: adding 3-1:1.0 (config #1, interface 0)
[    2.216283] usbhid 3-1:1.0: usb_probe_interface
[    2.216284] usbhid 3-1:1.0: usb_probe_interface - got id
[    2.228515] input: A4Tech USB Mouse as /devices/pci0000:00/0000:00:1d.1/usb3/3-1/3-1:1.0/input/input3
[    2.239236] a4tech 0003:09DA:000A.0001: input,hidraw0: USB HID v1.10 Mouse [A4Tech USB Mouse] on usb-0000:00:1d.1-1/input0

только ПОСЛЕ этого начинает работать OpenRC, который и запускает удев
З.Ы. долбаный фреймбуфер - из-за него ядро грузится в 2 раза дольше (

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

Да, нужен, не нужен - не суть, /dev/sda3 у человека нет, вот в чем проблема.

Failed tp open device '/dev/sda3': no such file or dir

А почему его нет - неизвестно, так как слаковские стартовые скрипты я не видел, а создать его должны именно они ( ну или создать их статически, как вариант, хотя так уже никто не делает)

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

Взаимодополняющие параграфы.

initrd про сто не нужен на десктопе!
если нет рейда конечно...

У меня настольная машина на RAID-1, кроме того весь LVM зашифрован. Ну и где твой «initrd не нужен» теперь?

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

ПОДУМАЙ.

Хорошо, я отключу RAID, оставлю только шифрование всего LV с корнем. Теперь подумай много-много раз как я буду грузить такую систему без initrd.

Короче, initrd нужен. Те кто говорит что initrd не нужен не нужны.

Camel ★★★★★
()
Ответ на: ПОДУМАЙ. от Camel

тудыть тя растудыть...
ты не нужен раз настолько туп, что не понимаешь - рейд,лвм и прочий изврат на десктопе нужен хорошо если 1% пользователей!
поэтому с вероятностью 99% инитрд не нужен

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

Нужен!

не понимаешь - рейд,лвм и прочий изврат на десктопе нужен хорошо если 1% пользователей!

RAID, LVM и шифрование нужны поголовно всем пользователям. Жаль не все это осознают.

Camel ★★★★★
()
Ответ на: Нужен! от Camel

> нужны поголовно всем пользователям
о_О а? чо?
совсем дурной?
рейд отпадает - далеко не у всех есть овер 1 винт, да и доп винт покупаются для объёма, а не для зеркала,да
в случае рейд0 отказоустойчивость падает пропорционально кол-ву винтов --> нах не надо большинству
лвм - нах оно на ДЕСКТОПЕ?
шифрование - от кого? от себя? совсем того?
итого - ересь!

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

RAID не отпадает.

рейд отпадает - далеко не у всех есть овер 1 винт

RAID не отпадает. У каждого должен быть over 1 hdd. Это так же естественно как подтираться бумагой и подмываться водичкой. К сожалению в мире ещё много дикарей, которые этого не понимают. С LVM и шифрованием то же самое.

Camel ★★★★★
()

Слака запускатся без инитрд, следовательно фс используемые должны быть скомпилены в ядре! у тебя конфиг старый в ядре скомпилена поддержка ext3 - вариантов 2 = 1-й скомпилить ядро с поддержкой райзер (конфиг естессно править руками самому), 2-й саздать initrd с помощью mkinitrd!

ipwww ★★
()

/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

root = /dev/sda3

Так уже давно никто не делает. Используй UUID'ы, метки разделов или имена логических разделов LVM.

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

Слака запускатся без инитрд

Так тоже уже давно никто не делает. Используя initrd/initramfs ты экономишь оперативную память, а так же своё время и нервы =).

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

>А почему его нет - неизвестно, так как слаковские стартовые скрипты я не видел, а создать его должны именно они ( ну или создать их статически, как вариант, хотя так уже никто не делает)

ерунда. если есть драйвер, изначально устройсва создаёт ядро. для жестких дисков это точно так, насчёт остального не знаю. есть опции nodev, static и udev, если не ошибаюсь...

тем более у ТС проблема появляется ТОЛЬКО от смены ядра, причем здесь скрипты? ))

советую проверить в конфиге ядра
Block layer SG support v4
Dnotify support
Inotify file change notification support
Advanced partition selection > PC BIOS (MSDOS partition tables) support
BSD disklabel (FreeBSD partition tables) support

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

>Используя initrd/initramfs ты экономишь оперативную память, а так же своё время и нервы =)
ну-ка по-подробнее по обоим пунктам!
имхо бред!

megabaks ★★★★
()
Ответ на: RAID не отпадает. от Camel

>RAID не отпадает. У каждого должен быть over 1 hdd. Это так же естественно как подтираться бумагой и подмываться водичкой. К сожалению в мире ещё много дикарей, которые этого не понимают. С LVM и шифрованием то же самое.
что курил?
накой х** мне на ДОМАШНЕМ компе шифрование?
на кой х** лвм?
ты явно не сигареты куришь...причём не первый год...

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

ну-ка по-подробнее по обоим пунктам! имхо бред!

Почитай что такое initrd, зачем его придумали и что он делает.

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

я знаю что это такое!
КАК он экономит память?
и уж тем более время и нервы? последнее экономит как раз монолит!

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

тысяча извинений, но sda при загрузке видно.
ul 12 01:56:11 prime kernel: scsi 0:0:0:0: Direct-Access ATA ST9160301AS 0001 PQ: 0 ANSI: 5
Jul 12 01:56:11 prime kernel: sd 0:0:0:0: [sda] 312581808 512-byte logical blocks: (160 GB/149 GiB)
...
ul 12 01:56:11 prime kernel: REISERFS (device sda3): found reiserfs format «3.6» with standard journal
Jul 12 01:56:11 prime kernel: REISERFS (device sda3): using ordered data mode
Jul 12 01:56:11 prime kernel: REISERFS (device sda3): journal params: device sda3, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30
Jul 12 01:56:11 prime kernel: REISERFS (device sda3): checking transaction log (sda3)
Jul 12 01:56:11 prime kernel: REISERFS (device sda3): Using r5 hash to sort names

если в параметрах загрузки ядра указать rw, то будет предупреждение, что бы root ФС монтировалась для начала в режиме read-only, несколько советом как это сделать. и нажимаю enter и загрузка продолжается. т.е. видимо, fsck пропускается и процесс загрузки не обрывается из-за того, что /dev/sda3 не нашелся.
загружаются init, udev. но! после окончательной загрузки в /dev/ нет никаких sdX. /dev/sda3 каким-то для меня волшебным образом монтируется, а /dev/sda3 нет.
mount показывает, что
/dev/root on / type reiserfs (rw,relatime)
опять же /dev/root не существует. /dev/root это симлинк на /dev/sda3, это видно, если загрузиться с инсталяционным huge ядром.

где-то я промахнулся при пересбоки ядра. вот думаю, а можно ли было так делать?
cd /usr/src/linux (2.6.33.4)
make mrproper
cp config-my-2.6.33.3 ./.config
make menuconfig
или нужно было сначала запустить make menuconfig, а там уже сделать Load an alternate config file.
ну просто старый конфиг (от 2.6.33.3) работал замечательно на родном ядре. а при переносе на 2.6.33.4 что-то сбилось. сравнивал опции в старом и новом, ну мож как-то поменялись названия, но все совпадает. опции sprutos тоже проверил, все Y. для 2.6.33.3 я его три дня писал. не хочу опять все по новой делать =).

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

>cp config-my-2.6.33.3 ./.config

make menuconfig

или нужно было сначала запустить make menuconfig, а там уже сделать Load an alternate config file.


как хочешь - и так и эдак будет работать
только зачем мистер пропер?

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

КАК он экономит память?

Позволяет не держать в памяти стопицот килобайт кода для несуществующего железа.

и уж тем более время и нервы? последнее экономит как раз монолит!

  1. initrd позволяет в качестве / системы указать UUID или метку раздела. ЕМНИП монолит такое позволяет разве что с редхатовскими патчами. Это очень сильно экономит нервы на системах, где имена у блочных устройств могут меняться (т.е. вчера диск был sda, а сегодня ВНЕЗАПНО стал sdb). Кроме того, без этого невозможно сделать нормальный Live{CD,DVD,USB}-дистрибутив.
  2. initrd позволяет иметь универсальное ядро, работающее на любом железе, но при этом не занимающее память ненужными модулями. С монолитным ядром мы получаем либо бессмысленное использование лишней памяти, либо ядро, которое придётся пересобирать при смене железа (например при сгорании материнки).
Deleted
()
Ответ на: комментарий от Deleted

вот-вот - для лайфа оно самое - не спорю - для инсталера дистра тоже
но НЕ для КОНКРЕТНОГО железа!
дрова только нужные! и где сожраная память?
отсутствие инитрд как минимум экономит время при загрузке и избавляет от его создания(самого инитрд)
на десктопе на конкретном железе оно даром не нать!

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

но НЕ для КОНКРЕТНОГО железа! дрова только нужные!

И kernel panic после смены материнки, ага!

А вообще я тоже раньше красноглазил с самосборными монолитными ядрами. Но это как-то само прошло, когда я понял, что это абсолютно бессмысленная трата времени =).

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

initrd позволяет в качестве / системы указать UUID или метку раздела. ЕМНИП монолит такое позволяет разве что с редхатовскими патчами.

И сколько же у вас весит initrd? kernel.ko c/без редхатовких патчей?

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

И kernel panic после смены материнки, ага!

Ужас.

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

т.е. вчера диск был sda, а сегодня ВНЕЗАПНО стал sdb

это, извините за выражение, дерьмо, а не железо!

То есть ты хочешь, чтобы всё было «прошито гвоздями», и винчестеры нельзя было перетыкать местами и, не дай боже, в другой системник подтыкать? Да ты Герой.

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

>И kernel panic после смены материнки, ага!
вы здоровы?
нах мне куча говна из-за раз...в скока там лет меняют в среднем мать??? )
думай чтоль для начала...

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

т.е. вчера диск был sda, а сегодня ВНЕЗАПНО стал sdb

это, извините за выражение, дерьмо, а не железо!

95% всего является дерьмом.

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

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

>95% всего является дерьмом.
и инитрд туда входит в 95% случаев, согласен

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

вы здоровы?

Я даже более здоров чем ты =).

нах мне куча говна из-за раз...

Именно initrd и позволяет не держать эту кучу в оперативной памяти.

думай чтоль для начала...

Я то как раз думаю...

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