FS#16347 - [mkinitcpio] kernel panic when booting ext4 partitions without journals
Attached to Project:
Arch Linux
Opened by (UNIVAC) - Friday, 25 September 2009, 02:15 GMT
Last edited by Thomas Bächler (brain0) - Friday, 19 February 2010, 17:27 GMT
Opened by (UNIVAC) - Friday, 25 September 2009, 02:15 GMT
Last edited by Thomas Bächler (brain0) - Friday, 19 February 2010, 17:27 GMT
|
Details
Description:
initramfs made by mkinitcpio can't boot ext4 partitions that have been modified with tune2fs -O ^has_journal. Additional info: mkinitcpio 0.5.26-1 e2fsprogs 1.41.9-1 grub 0.97-16 kernel26 2.6.30.6-1 init makes mention of "Unsupported features" when attempting to mount ext4 partitions without journals. I don't recall the exact exit number that appears next to the "Unsupported features" entry. Note: Grub is not the culprit. To verify this I've made a custom 30.6-1 kernel (the only change being disabling initramfs) and Grub boots journal-less ext4 partitions just fine. Steps to reproduce (the lines marked as optional are steps I took when retrying to make initramfs boot the modified partition): Boot in single user mode. mount -n -o remount,ro / tune2fs -O ^has_journal /dev/sdXX (root filesystem) if prompted, do an e2fsck on the drive (next line is optional: just to check if your kernel supports mounting it, mine did) mount -n -o remount,rw / mkinitcpio -p kernel26 (also optional) reboot More about my setup: both my /boot and /home partitions are ext4 ^has_journal ^huge_file. I can't do the same with / because of the aforementioned problems. |
This task depends upon
Closed by Thomas Bächler (brain0)
Friday, 19 February 2010, 17:27 GMT
Reason for closing: Fixed
Additional comments about closing: Should be fixed, and no response for my queries.
Friday, 19 February 2010, 17:27 GMT
Reason for closing: Fixed
Additional comments about closing: Should be fixed, and no response for my queries.
initram booted it :D
It was probably a lower version of e2fsprogs, a couple of updates from the latest aif iso.
Sorry, lol.
By the way, why are you even trying to use a filesystem without journalling? Are you aware of the consequences?
UPS/battery, running simple programs like dwm instead of a full-blown DE for stability, it all helps :)
What do you mean that ext4 doesn't support it? The option has been there for a while.
data=journal / data=ordered / data=writeback
Specifies the journalling mode for file data. Metadata is always journaled. To use modes other than ordered on the root file system,
pass the mode to the kernel as boot parameter, e.g. rootflags=data=journal.
Anyway, you guys might want to close this since I can't recreate it. :)
My troubles begins at installation: I can't create ext4 partition without journal with Arch installer! Official Arch Linux Install Guide says "When asked for (optional) options to mkfs tools, pass arguments which will literally be added when calling mkfs. For example, to disable the journal on ext filesystems: don't do ^has_journal, but rather -O ^has_journal". It creates filesystem WITH journal anyway. Okay, trying another way.
I've reproduced this bug in VirtualBox (it also present on real hardware, but I don't want to experiment with my notebook too much). So, this is my steps.
1) boot archlinux-2009.08-netinstall-i686.img
2) parted: mklabel msdos
3) parted: mkpart primary ext2 0% 100%
4) mkfs.ext4 -O ^has_journal /dev/sda1
5) reboot (just in case) to archlinux-2009.08-netinstall-i686.img again
Now I can see /dev/sda1, but there is no /dev/disk/by-uuid/some-id which points to /dev/sda1
Hm... okay, proceeding.
6) /arch/setup ... manual partitionig without reformatting to save /dev/sda1 ext4 without journal...
7) reboot
Result: http://pic.ipicture.ru/uploads/091123/eK4EaGKnS9.png
Both images (normal and fallback) don't work :(
Adding "rootfstype=ext4" to kernel don't give any result.
Changing "root=/dev/disk/by-uuid/..." to "root=/dev/sda1" gives kernel panic: http://pic.ipicture.ru/uploads/091123/5uOhKWa7L3.png
I can provide more info if needed.
Is there any temportary solution on booting ext4 without journal (simple, without kernel recompilation)?
My troubles begins at installation: I can't create ext4 partition without journal with Arch installer! Official Arch Linux Install Guide says "When asked for (optional) options to mkfs tools, pass arguments which will literally be added when calling mkfs. For example, to disable the journal on ext filesystems: don't do ^has_journal, but rather -O ^has_journal". It creates filesystem WITH journal anyway. Okay, trying another way.
I've reproduced this bug in VirtualBox (it also present on real hardware, but I don't want to experiment with my notebook too much). So, this is my steps.
1) boot archlinux-2009.08-netinstall-i686.img
2) parted: mklabel msdos
3) parted: mkpart primary ext2 0% 100%
4) mkfs.ext4 -O ^has_journal /dev/sda1
5) reboot (just in case) to archlinux-2009.08-netinstall-i686.img again
Now I can see /dev/sda1, but there is no /dev/disk/by-uuid/some-id which points to /dev/sda1
Hm... okay, proceeding.
6) /arch/setup ... manual partitionig without reformatting to save /dev/sda1 ext4 without journal...
7) reboot
Result: http://pic.ipicture.ru/uploads/091123/eK4EaGKnS9.png
Both images (normal and fallback) don't work :(
Adding "rootfstype=ext4" to kernel don't give any result.
Changing "root=/dev/disk/by-uuid/..." to "root=/dev/sda1" gives kernel panic: http://pic.ipicture.ru/uploads/091123/5uOhKWa7L3.png
I can provide more info if needed.
Is there any temportary solution on booting ext4 without journal (simple, without kernel recompilation)?
strange F5-effect O_o
It seems like initramfs (or whatever, I'm not sure) fails to recognize FS on /dev/sda1 (whih is ext4) then fails to create /dev/disk/by-uuid/* for this device and fails to mount it.
It's a VirtualBox, so no problem to see more: http://pic.ipicture.ru/uploads/091123/iPrIizRgCV.png
At the bottom of the screen you can see contents of /dev:
/dev/sda1 - new system root partition
/dev/sdb1 - archlinux-2009.08-netinstall-i686.img
/dev/disk/by-uuid/f9894... - it is UUID of /dev/sdb1
http://pic.ipicture.ru/uploads/091123/1eDFpQ2eHG.png
I could probably fix it in the tools with a quickfix, however I cannot even rebuild the klibc-initramfs tools for unknown reasons, which is yet another reason for the pending mkinitcpio overhaul.
My purpose is to install Arch on notebook with SSD, so I need non-journaling FS on a root partition.
Is there an easy temporary workaround (without kernel rebuilding or something like this), or it is better to use ext2 until you fix this bug?
For more clarity:
1) Ext4 created, then journal disabled
Ext4 created during install (with default options), then journal disabled (with tune2fs), then booted - FAIL: http://pic.ipicture.ru/uploads/091127/yUnMQCX7lL.png
The same, booted with kernel options "root=/dev/sda1 rootfstype=ext4" - SUCCESS: http://pic.ipicture.ru/uploads/091127/I4zS2xeW5L.png
tune2fs -l /dev/sda1: http://pastebin.com/f6f3c45c1
dmesg: http://pastebin.com/f61587c9
2) Ext4 created without journal at once
Ext4 created BEFORE install with "mkfs.ext4 -O ^has_journal /dev/sda1", then Arch installed without FS recreation (just mounted), then booted - FAIL: http://pic.ipicture.ru/uploads/091127/si7SSe1T9H.png
tune2fs -l /dev/sda1: http://pastebin.com/f4196fa64
The same, booted with kernel options "root=/dev/sda1 rootfstype=ext4" - KERNEL PANIC: http://pic.ipicture.ru/uploads/091127/E28VSA1RcU.png
What's difference between ext4 created without journal at once and ext4 with disabled journal?