LinuxForum.Fans
Тема

[Решено] Проблема с ext4 в ядре 2.6.33

Автор: voffka 20 сообщений 20701 просмотров
#2930

Имею корневую ФС на ext4, при загрузке ядра 2.6.33 она монтируется только в read-only. При этом соседний раздел на рейзере монтируется как положено, в read-write. На соседнем ядре 2.6.31-r6 все хорошо, так что думаю, проблема не в fstab. Конфиг у ядер одинаковый, menuconfig взял его автоматом из /proc, прилагаю его ниже.
Оба ядра собирал из gentoo-sources.

-----------------------------------

Поборол проблему. Дело оказалось в неактивированной опции CONFIG_LBDAF в конфиге ядра. В менюконфиге она находится в

text
-*- Enable the block layer  --->
[*]   Support for large (2TB+) block devices and files

Если учесть, что ни дисков, ни тем более файлов более терабайта у меня нет, то это как-то странно. Система вообще на 15-ти гигвом разделе крутится (который как раз и не монтировался в rw)

#2951

Да конфиг тут ни при чём. Ибо в ядре просто нет возможности иметь ext4 только в режиме чтения. Только чтение-запись.
Что пишет попытка смонтировать?

#3017

Думаю, что дело не в ядре, т.к. у меня монтирует всё верно.
Попробуйте mount -o remount,rw /.

#3155

mount -o remount,rw / говорит cannot remount block device read-write - is write-protected
Собственно оно и ясно - в dmesg вываливается следующее:

text
sd 0:0:0:0: [sda] 488397168 512-byte logical blocks: (250 GB/232 GiB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
...
EXT4-fs (sda1): barriers enabled
EXT4-fs (sda1): delayed allocation enabled
EXT4-fs: file extents enabled
EXT4-fs: mballoc enabled
EXT4-fs (sda1): mounted filesystem with ordered data mode
VFS: Mounted root (ext4 filesystem) readonly on device 8:1.

Почему - непонятно...

Прогонял fsck - ошибок нет, ничего не изменилось

#3386

Ядро не при чем, ext4 в качестве корневой нормально работает.

#3437

В принципе не удивительно что не проходит фокус с mount -o remount,rw /
так как к корневой файловой системе уже примонтированны и другие ФС.
не помешало бы показать еще и вывод следующих комманд:

text
# cat /etc/fstab
# cat /proc/mounts

может это намекнет на мысль.

#3571
ormorph написал:
так как к корневой файловой системе уже примонтированны и другие ФС.

Не. Всё равно должно работать.

voffka написал:
mount -o remount,rw / говорит cannot remount block device read-write - is write-protected

А что пишет sudo hdparm -r /dev/sda ?

#3713

У мну такая трабла была на ноуте, но с более старым ядром (не помню точно каким) и ext4 на корневой фс. Решилость использованием initrd (хотя ядро згружалось и без оного). В чем причина такого поведения я так и не выяснил.

#3722
text
mount -o remount,rw / говорит cannot remount block device read-write - is write-protected

дико извиняюсь, mount -no remount,rw /

ЗЫ. параметр -n позволяет монтировать без записи в mtab ( как раз ваш случай)

#3753

Пока похоже bobr приближается к истине
должно было намекнуть просмотр cat /proc/mounts
rootfs

другими словами либо параметры загрузки, либо initrd

#3777
ormorph написал:
может это намекнет на мысль.

Не, не намекнуло, только запутало больше.
Fstab:

text
# <fs>                  <mountpoint>    <type>          <opts>          <dump/pass>

# NOTE: If your BOOT partition is ReiserFS, add the notail option to opts. /dev/sda1 / ext4 noatime 0 1 /dev/sda2 /mnt/d1 reiserfs noatime 0 0 /dev/sdb1 /mnt/d2 reiserfs noatime 0 0

/proc/mounts:

text
rootfs / rootfs rw 0 0
/dev/root / ext4 ro,relatime,barrier=1,data=ordered 0 0
proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
rc-svcdir /lib/rc/init.d tmpfs rw,nosuid,nodev,noexec,relatime,size=1024k,mode=755 0 0
sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0
udev /dev tmpfs rw,nosuid,relatime,size=10240k,mode=755 0 0
devpts /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620 0 0
shm /dev/shm tmpfs rw,nosuid,nodev,noexec,relatime 0 0
/dev/sda2 /mnt/d1 reiserfs rw,noatime 0 0
/dev/sdb1 /mnt/d2 reiserfs rw,noatime 0 0
binfmt_misc /proc/sys/fs/binfmt_misc binfmt_misc rw,nosuid,nodev,noexec,relatime 0 0

Добавление в fstab опции rw к корневому разделу к профиту не приводит, вывод cat /proc/mounts остается тем же

hdparm -r /dev/sda деоать не стал, сделал hdparm /dev/sda ибо не хочу, чтоб мой винт действительно в ридонли ушел. Получил следующее:

text
/dev/sda:
 multcount     =  0 (off)
 IO_support    =  1 (32-bit)
 readonly      =  0 (off)
 readahead     = 256 (on)
 geometry      = 30401/255/63, sectors = 488397168, start = 0

По прежнему ума не приложу что это такое, почему mount при монтировании корня не смотрит в fstab?

HTaeD написал:
дико извиняюсь, mount -no remount,rw /

Выдает то же самое.

Кстати, при загрузке ядра выпадает сообщение, мол /dev/sda монтируется с неподдерживаемыми опциями (сами опции не указаны). Но в dmesg я эту строчку найти не могу, почему-то

#3796

незнаю как получали initrd
могу предложить распаковать данный файл от старого ядра и подсунуть в него модули от нового ядра.
После этого снова создать файл и попробовать его использовать.
смотри утилиту cpio
пишу с мобилы, по этому точнее смогу только вечером.
ну и обычно в fstab обычно используется параметр defaults в корневом разделе
хотя сомневаюсь что дело в нем.

#3889

ormorph, в initrd у меня только бутсплеш, модуль для ext4 в ядре вкомпилен

#3898

ну а пробовали монтировать какой нибудь раздел ext4 монтировать в ручную? Например файл отформатировать и примонтировать Про фаил initrd написал, так как в нем должен быть скрипт загрузки и утилиты для работы с ФС

Немного просмотрел скрипт загрузки в своем intrd
изначально файловая система монтируется только для чтения, ну а потом выполняется команда:
mount -o remount,rw /
у вас по какой то причине не может перемонтировать в режим записи.
тут хз какой то глюк.

незнаю как создавали раздел ext4, если с нуля форматировали, перед этим не правили файл /etc/mke2fs.conf ?
например добавив строчку

text
ext4 = {
        features = has_journal,extents,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize
        inode_size = 256
    }

а затем командой mkfs.ext4
если с помощью tune2fs то читайте man там вроде должна быть подсказка.

#5988
voffka написал:
ormorph, в initrd у меня только бутсплеш, модуль для ext4 в ядре вкомпилен

У меня в initrd тоже ничего небыло, только сплеш. А тем не менее.

см выше, 8-ой пост.

#6011
bobr написал:
У меня в initrd тоже ничего небыло, только сплеш. А тем не менее.

см выше, 8-ой пост.

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

text
dd if=/dev/zero of=file.img bs=1M count=10
mkfs.ext3 file.img
mount -o loop,ro file.img /mnt/test -t ext4
mount -o loop,remount,rw file.img /mnt/test -t ext4

тут скорее всего не получится перемонтировать в режим записи.
но зато получится если изначально смонтировать по дефолту, затем перевести в режим только чтения, то из него возможно перейти в режим записи.

#6414

Решения так и не нашел. Написаное выше не помогает. Попробую еще потом ядро подергать и систему инициализации. Сейчас лениво...

#6475
ormorph написал:
[quote=bobr]У меня в initrd тоже ничего небыло, только сплеш. А тем не менее.

см выше, 8-ой пост.

то есть у вас в файле initrd нет скрипта init ?
[/quote]
Ну скрипт, понятное дело, есть. Под словами "неичего нету" я имел в виду "никаких модулей". Вот как-то так точнее будет.

#7275

Поборол проблему. Дело оказалось в неактивированной опции CONFIG_LBDAF в конфиге ядра. В менюконфиге она находится в

text
-*- Enable the block layer  --->
[*]   Support for large (2TB+) block devices and files

Если учесть, что ни дисков, ни тем более файлов более терабайта у меня нет, то это как-то странно. Система вообще на 15-ти гигвом разделе крутится (который как раз и не монтировался в rw)

#7515

voffka, просто ext4 так устроена. Поддерживает большие файлы. Странно то, что она вообще не зависит от этой опции, что её вручную надо включать. Логичнее было бы, если бы она автоматически менялась... или поддержка ext4 просто пряталась когда не поставлена эта птичка.

Войдите или зарегистрируйтесь, чтобы ответить.