Непонятки с начальным монтирование корневого раздела

SLAX, Deep Style, ZenWalk

Модератор: Модераторы разделов

Serg79
Сообщения: 153

Непонятки с начальным монтирование корневого раздела

Сообщение Serg79 »

Поставил Slackware 12.2 и сразу бросилось в глаза некорректное монтирование корневого раздела.

Код: Выделить всё

# mount
/dev/root on / type ext3 (rw,errors=continue,data=ordered)   <------------------
/proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
usbfs on /proc/bus/usb type usbfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)

Если я не ошибаюсь, то первая строка для моего диска должна иметь следующий вид:

Код: Выделить всё

/dev/hda1 on / type ext3 (rw)

Подскажите, в чем грабли. Почему ядро изначально не правильно монтирует корневой раздел?
Да, сразу добавлю, файла или линка '/dev/root' нет.

Параметры в lilo:

Код: Выделить всё

image = /boot/vmlinuz
  root = /dev/hda1
  label = Linux
  read-only
Спасибо сказали:
Аватара пользователя
Aectann
Бывший модератор
Сообщения: 3491
Статус: ...
ОС: OS X, GNU_и_не_только/Linux

Re: Непонятки с начальным монтирование корневого раздела

Сообщение Aectann »

Serg79 писал(а):
10.02.2009 00:32
Подскажите, в чем грабли. Почему ядро изначально не правильно монтирует корневой раздел?

Кто вам сказал, что неправильно? Монтируется правильно, но с дополнительными опциями (errors=continue,data=ordered), о назначении которых можно почитать в man mount. Если хотите поменять параметры монтирования, отредактируйте запись для этого раздела в /etc/fstab.
My god... it's full of stars!...
Спасибо сказали:
Serg79
Сообщения: 153

Re: Непонятки с начальным монтирование корневого раздела

Сообщение Serg79 »

Aectann писал(а):
10.02.2009 01:11
Кто вам сказал, что неправильно? Монтируется правильно, но с дополнительными опциями (errors=continue,data=ordered), о назначении которых можно почитать в man mount. Если хотите поменять параметры монтирования, отредактируйте запись для этого раздела в /etc/fstab.

В том то и дело, что в /etc/fstab нет ничего похожего для корневого раздела:

Код: Выделить всё

$ cat fstab
/dev/hda2        swap             swap        defaults         0   0
/dev/hda1        /                ext3        defaults         1   1
/dev/cdrom      /mnt/cdrom       auto        noauto,owner,ro  0   0
/dev/fd0         /mnt/floppy      auto        noauto,owner     0   0
devpts           /dev/pts         devpts      gid=5,mode=620   0   0
proc             /proc            proc        defaults         0   0
tmpfs            /dev/shm         tmpfs       defaults         0   0

И еще меня смущает, почему вместо устройства корневого раздела '/dev/hda1' там указано '/dev/root'?
Спасибо сказали:
Аватара пользователя
bormant
Сообщения: 1354

Re: Непонятки с начальным монтирование корневого раздела

Сообщение bormant »

Serg79 писал(а):
10.02.2009 00:32
Поставил Slackware 12.2 и сразу бросилось в глаза некорректное монтирование корневого раздела.

(Changelog.txt) писал(а):+--------------------------+
Thu Dec 18 12:40:56 CST 2008
patches/packages/mkinitrd-1.3.3-i486-1_slack12.2.tgz:
...
With some newer kernels, "/dev/root" might be returned by mount as the root
device, but this will not work as an initrd root device. If mount returns
/dev/root, look at the /dev/root symlink to determine the actual root device
and use that so that the root device does not need to be supplied with -r.
...

Это фишка в целях унификации. После загрузки rc.udev создает символьную ссылку /dev/root -> /dev/?da? в зависимости от переданного ядру параметра root=.

Если проблемы с загрузкой модульного ядра (kernel panic) -- обновите пакет mkinitrd и пересоздайте initrd.

Обсуждение (en): http://www.linuxquestions.org/questions/sl...devroot-688189/
Спасибо сказали:
Serg79
Сообщения: 153

Re: Непонятки с начальным монтирование корневого раздела

Сообщение Serg79 »

bormant, нет никакой ссылки, я об этом уже говорил:
Serg79 писал(а):
10.02.2009 00:32
Да, сразу добавлю, файла или линка '/dev/root' нет.

и выполнение стартового скрипта rc.udev, я отключил.

А этот феномен я обнаружил когда собрал свое ядро в которое были включены только необходимые мне драйвера и протокол TCP/IP, т.е. архив для ядра 'initrd' с дополнительными драйверами не используется. Я тогда перегрузился с дефолтным ядром, тот же эффект (kernel-huge-2.6.27.7-i486-1), кстати оно тоже не использует 'initrd'. Тогда я по быстрому накатил Слаку на виртуальную машину и тот же эффект, и после этого я понял что дело не в моих кривых руках.

Посмотрел что выдает 'mount' на Fedora:

Код: Выделить всё

# mount
/dev/sda1 on / type ext3 (rw)
/proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)

там таких касяков нет.

Кто знает как побороть эту шляпу?
Спасибо сказали:
Serg79
Сообщения: 153

Re: Непонятки с начальным монтирование корневого раздела

Сообщение Serg79 »

Я вот одного не пойму, это у меня только так или у всех кто поставил Slackware 12.2?

Если не затруднит, пользователь Slackware 12.2 покажите вывод команды mount.
Спасибо сказали:
Аватара пользователя
bormant
Сообщения: 1354

Re: Непонятки с начальным монтирование корневого раздела

Сообщение bormant »

(mount) писал(а):/dev/hda6 on / type ext3 (rw,errors=continue,data=ordered)
...
Спасибо сказали:
Serg79
Сообщения: 153

Re: Непонятки с начальным монтирование корневого раздела

Сообщение Serg79 »

bormant, а в '/etc/fstab' у тебя что написано относительно '/dev/hda6'? Я имею в виду, там есть опции errors=continue,data=ordered?
Спасибо сказали:
Аватара пользователя
bormant
Сообщения: 1354

Re: Непонятки с начальным монтирование корневого раздела

Сообщение bormant »

Serg79 писал(а):
10.02.2009 13:55
bormant, а в '/etc/fstab' у тебя что написано относительно '/dev/hda6'? Я имею в виду, там есть опции errors=continue,data=ordered?


Нет, такого нет.
(grep hda6 /etc/fstab) писал(а):/dev/hda6 / ext3 defaults 1 1
Спасибо сказали:
Serg79
Сообщения: 153

Re: Непонятки с начальным монтирование корневого раздела

Сообщение Serg79 »

Я начинаю грешить на lilo, по моему это он неправильно формирует строку параметров для ядра:

Код: Выделить всё

$ cat /proc/cmdline
BOOT_IMAGE=Linux-2.6.27.15 ro root=301

Она почему то вместо того чтобы нормально передать строку содержащую имя корневого раздела root=/dev/hda1 передает ему старший и младший номер устройства root=301:

Код: Выделить всё

$ ls -l /dev/hda1
brw-rw---- 1 root disk 3, 1 2002-06-09 23:27 /dev/hda1


bormant, если Тебя не затруднит, то попробуй при загрузки системы в командной строке lilo написать root=/dev/hda6 (это в твоем случае) вместо извращения root=301.
Я это не могу сделать, т.к. сейчас не имею физического доступа к машине. За ранее благодарю. :rolleyes:
Спасибо сказали:
Аватара пользователя
bormant
Сообщения: 1354

Re: Непонятки с начальным монтирование корневого раздела

Сообщение bormant »

Serg79 писал(а):
10.02.2009 14:51
в командной строке lilo написать root=/dev/hda6 (это в твоем случае) вместо извращения root=301.

как видим, передалось в дополнение
(dmesg | egrep root|hda6) писал(а):Kernel command line: BOOT_IMAGE=Linux ro root=306 vt.default_utf8=1 root=/dev/hda6

(mount | egrep root|hda6) писал(а):/dev/hda6 on / type ext3 (rw,errors=continue,data=ordered)
Спасибо сказали:
Serg79
Сообщения: 153

Re: Непонятки с начальным монтирование корневого раздела

Сообщение Serg79 »

ОК, спасибо bormant.

Надо будет попробовать grub поставить и через него загрузиться, может этот косяк пройдет.

Вот еще что хочу спросить у Тебя bormant. Ты когда параметры вводил через консоль lilo, там была уже запись для для корневого раздела (root=blablabla) или нет?
Спасибо сказали:
Аватара пользователя
bormant
Сообщения: 1354

Re: Непонятки с начальным монтирование корневого раздела

Сообщение bormant »

Serg79 писал(а):
10.02.2009 18:34
Вот еще что хочу спросить у Тебя bormant. Ты когда параметры вводил через консоль lilo, там была уже запись для для корневого раздела (root=blablabla) или нет?

Так lilo не выводит их как это делает grub, если я правильно помню, т.е.
boot: Linux root=/dev/hda6
Спасибо сказали:
Serg79
Сообщения: 153

Re: Непонятки с начальным монтирование корневого раздела

Сообщение Serg79 »

Разобрался я все таки в чем здесь дело. Вот кусок файла '/etc/rc.d/rc.S':

Код: Выделить всё

237  # Any /etc/mtab that exists here is old, so we delete it to start over:
238  /bin/rm -f /etc/mtab*
239  # Remounting the / partition will initialize the new /etc/mtab:
240  /sbin/mount -w -o remount /
241
242  # Read in the correct / filesystem complete with arguments so mount will
243  # show them correctly. This does not stop those arguments from functioning
244  # but does prevent a small bug with /etc/mtab.
245  /bin/grep ' / ' /proc/mounts | grep -v "^rootfs" > /etc/mtab

После перемонтирования корневого раздела на 'чтение-запись' удаляется старый файл '/etc/mtab' (стр. 238). После чего корневой раздел обратно перемонтируется (стр. 240) и в файле '/etc/mtab' появляется первая запись:

Код: Выделить всё

/dev/hda1 / ext3 rw 0 0

Но по каким то своим причинам:
# Read in the correct / filesystem complete with arguments so mount will
# show them correctly. This does not stop those arguments from functioning
# but does prevent a small bug with /etc/mtab.

Патрик принял решение сохранять в файле '/etc/mtab' строку об разделе '/dev/root' (стр. 245). Т.е. следующую запись:

Код: Выделить всё

/dev/root / ext3 rw,errors=continue,data=ordered 0 0

После комментирования строки 245 и перезагрузки системы, команда mount и соответственно файл '/etc/mtab', начинают выдавать то что привык видеть мой взор:

Код: Выделить всё

# mount
/dev/hda1 on / type ext3 (rw)
/proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
Спасибо сказали:
Serg79
Сообщения: 153

Re: Непонятки с начальным монтирование корневого раздела

Сообщение Serg79 »

Отдельное спасибо bormant, Твои посты подтолкнули меня в нужное направление.
Спасибо сказали: