Skip to contentSkip to conversation

XFS w/ extern journal as root on Linux?

DISCUSSION Mark 2 participants 2 messages Jun 26, 2008

lore
Share & tools
lore

Mark

author
#0 lore raw

Well, I tried to convert my non-/home space to XFS with an external journal, but Linux consistently choked on it. I passed "rootfstype=xfs root=/dev/sdb5 rootflags=logdev=/dev/sda2" on the kernel command line (via GRUB) but it panicked every time.

Here is a transcript of the boot panic from an unmodified kernel:

~~~~~~~~~~~~~~~~~
md: Autodetecting RAID arrays.
md: Scanned 0 and added 0 devices.
md: autorun ...
md: ... autorun DONE.
XFS: Invalid device [/dev/sda2], error=-2
VFS: Cannot open root device "sdb5" or unknown-block(8,21)
Please append a correct "root=" boot option; here are the available partitions:
0800 390711384 sda driver: sd
0801 1005448 sda1
0802 3008880 sda2
0803 30005640 sda3
0804 1 sda4
0805 356688328 sda5
0b00 1048575 sr0 driver: sr
0810 488386584 sdb driver: sd
0811 146488671 sdb1
0812 4008217 sdb2
0813 3004155 sdb3
0814 1 sdb4
0815 334882926 sdb5

Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(8,21)

~~~~~~~~~~~~~~~~~

Judging from the output, it seems not to be able to open the log device /dev/sda2. I slipped in a couple statements in xfs_vfsops.c to watch for function entries and successful exits. I saw where xfs_blkdev_get() was called twice, the first time successfully (probably corresponding to /dev/sdb5), the second time unsuccessfully (/dev/sda2). Yet, the partition list at the end of the panic shows /dev/sda2 as recognized and available.

Is this a known issue?

As an acceptable substitute, I moved /usr to XFS with an external journal. Staying with the deadline scheduler, it's a noticeable difference. OOo launches in about 4 seconds.

Signature · 5 lines
Mark

"What better place to find oneself than
 on the streets of one's home village?"
      --Capt. Jean-Luc Picard, "Family"
#1 lore raw
Quoted 10 lines · Mark

Well, I tried to convert my non-/home space to XFS with an external journal, but Linux consistently choked on it. I passed "rootfstype=xfs root=/dev/sdb5 rootflags=logdev=/dev/sda2" on the kernel command line (via GRUB) but it panicked every time.

Here is a transcript of the boot panic from an unmodified kernel:

~~~~~~~~~~~~~~~~~
md: Autodetecting RAID arrays.
md: Scanned 0 and added 0 devices.
md: autorun ...
md: ... autorun DONE.
XFS: Invalid device [/dev/sda2], error=-2

Hm, xfs wants to open it by name ("/dev/sda2") but if we look at the early mount stuff it's doing essentially:

	root_device_name = saved_root_name; /* from root= */

        ROOT_DEV = name_to_dev_t(root_device_name);

        create_dev("/dev/root", ROOT_DEV);
        mount_block_root("/dev/root", root_mountflags);

so it's creating its own dev to open, and this isn't done for the logdev.

I wonder if xfs can do similar tricks, or maybe do name_to_dev_t and do the open by dev_t not path?

This is probably where somebody tells me I'm wrong for the following
reasons: a, b, c, ... :)

-Eric