Forum

Full Version: Xbian on ext4 file-system??
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hi there,

An experienced XBMC but very new to Xbian user here. Got a Q: Is there any reason I shouldn't be using ext4 as "/" [root] partition (on an USB HDD) for Xbian? My idea is to keep the "/boot" on the SD card and the rest on the external HDD. That's the way I'm running my other RPis. My first attempt failed; gives me nothing but a blank screen with the horizontal cursor on the top left corner of the screen. Can anyone please confirm if "not having btrfs is the actual problem" before I start spending time on it please? Cheers!!
Xbian Alpha and Beta 1 use Ext4

Beta 1.1 and Beta 2 use btrfs. The journalling is btrfs so will not run on ext4

It's like asking if Windoze can run on HPFS.

You don't say what version of Xbian you are running but if Beta 2.
To run Xbian on USB see that specific thread or just use Xbian-config (It will be btrfs) on the USB but FAT32 on /boot which is the SD card
(1st Feb, 2014 03:32 AM)IriDium Wrote: [ -> ]Xbian Alpha and Beta 1 use Ext4
Beta 1.1 and Beta 2 use btrfs. The journalling is btrfs so will not run on ext4

That's what I expected but wanted to make sure before spending any more time.
BTW, I used xbian-config to clone the root partition to USB stick and then changed to root=/dev/sda1 in the cmdline.txt but Xbian doesn't boot after that. All I get a blank screen and a cursor at the top left corner. Is there still anything that I'm missing? Using latest Beta2. Cheers!!
Are you sure your USB is on /dev/sda1?

Can you post config.txt and cmdline.txt
On the running system, it appears as /dev/sda.

Code:
root@xbian:~# parted -l
Model: USB 2.0 Flash Disk (scsi)
Disk /dev/sda: 4110MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End     Size    File system  Name     Flags
1       1049kB  3288MB  3287MB  btrfs        primary
2       3288MB  4110MB  822MB   ext4         primary

and I can mount the partition as sda1:

Code:
root@xbian:~# mount /dev/sda1 /mnt
root@xbian:~# ls -l /mnt
total 0
drwxr-xr-x 1 root root 2 Feb  1 14:55 data
drwxr-xr-x 1 root root 2 Feb  1 14:55 home
drwxr-xr-x 1 root root 2 Feb  1 14:56 modules
drwxr-xr-x 1 root root 2 Feb  1 15:02 root

Not sure if it gets changed during the boot. This is line in cmdline.txt to boot from USB drive:

Code:
sdhci-bcm2708.sync_after_dma=0 dwc_otg.lpm_enable=0 console=tty1 root=LABEL=xbian-copy rootflags=subvol=root/@,autodefrag,compress=lzo rootfstype=btrfs rootwait smsc95xx.turbo_mode=N elevator=cfq logo.nologo quiet noswap loglevel=0 mod_scsi.scan=async partswap startevent=mountall splash nohdparm --startup-event mountall loglevel=0

Anything not normal here? Cheers!!
Your root needs to be /dev./sda then - Why I'm not too sure. It should be sda1.

Your cmdline,txt still refers to the SD card
(2nd Feb, 2014 05:04 AM)IriDium Wrote: [ -> ]Your root needs to be /dev./sda then - Why I'm not too sure. It should be sda1.
I believe the dev. (the extra dot) is a typo. Apart from that, do you mean I should be using /dev/sda instead of /dev/sda1?

(2nd Feb, 2014 05:04 AM)IriDium Wrote: [ -> ]Your cmdline,txt still refers to the SD card

Do you mean the root=LABEL=xbian-copy bit? That's the LABEL /dev/sda1 gets when cloned by xbian-config tool. Or you mean something else? BTW, I also tried with root=/dev/sda1, which didn't work either.

On a separate note, Xbian actually doesn't boot at all on the new RPi (model B) with the latest download, unless I replace the start.elf and fixup.dat with these:

https://github.com/Hexxeh/rpi-firmware/raw/master/start_x.elf
https://github.com/Hexxeh/rpi-firmware/raw/master/fixup_x.dat

Without these changes, all I get the rainbow screen.
I'm very confused now. This is exactly what I have as my cmdline.txt:

Code:
xbian@xbian ~ $ cat /boot/cmdline.txt
#sdhci-bcm2708.sync_after_dma=0 dwc_otg.lpm_enable=0 console=tty1 root=LABEL=xbian-beta2 rootflags=subvol=root/@,autodefrag,compress=lzo rootfstype=btrfs rootwait smsc95xx.turbo_mode=N elevator=cfq logo.nologo quiet noswap loglevel=0 mod_scsi.scan=sync partswap startevent=mountall splash nohdparm --startup-event mountall loglevel=0

sdhci-bcm2708.sync_after_dma=0 dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootflags=subvol=root/@,autodefrag,compress=lzo rootfstype=btrfs rootwait smsc95xx.turbo_mode=N elevator=cfq logo.nologo quiet noswap loglevel=0 mod_scsi.scan=sync partswap startevent=mountall splash nohdparm --startup-event mountall loglevel=0

and after the boot, this is what I see mounted:
Code:
xbian@xbian ~ $ mount
/dev/sda1 on / type btrfs (rw,relatime,compress=lzo,ssd,space_cache,autodefrag)
devtmpfs on /dev type devtmpfs (rw,relatime,size=191796k,nr_inodes=47949,mode=755)
none on /dev/pts type devpts (rw,nosuid,noexec,relatime,mode=600)
none on /proc type proc (rw,nosuid,nodev,noexec,relatime)
none on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
none on /run type tmpfs (rw,nosuid,nodev,noexec,noatime,size=38376k)
/dev/mmcblk0p1 on /boot type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,​errors=remount-ro)
/dev/sda1 on /home type btrfs (rw,noatime,compress=lzo,ssd,space_cache,autodefrag)
/dev/sda1 on /lib/modules type btrfs (rw,noatime,compress=lzo,ssd,space_cache,autodefrag)
/dev/sda1 on /xbmc-backup type btrfs (rw,noatime,compress=lzo,ssd,space_cache,autodefrag)

Can anyone please explain how /dev/sda1 is being used instead of /dev/mmcblk0p2 as specified in the cmdline.txt?
On boot if your USB is on sda then change root=/dev/sda and that should work.
(1st Feb, 2014 11:31 PM)MacUsers Wrote: [ -> ]That's what I expected but wanted to make sure before spending any more time.
BTW, I used xbian-config to clone the root partition to USB stick and then changed to root=/dev/sda1 in the cmdline.txt but Xbian doesn't boot after that. All I get a blank screen and a cursor at the top left corner. Is there still anything that I'm missing? Using latest Beta2. Cheers!!

this looks like boot is stopped (or slow) and console is on different terminal (check console= setting in /boot/cmdline.txt or at the time you see cursor ALT+F1.....F12 on keyboard).

(2nd Feb, 2014 06:41 AM)MacUsers Wrote: [ -> ]I'm very confused now. This is exactly what I have as my cmdline.txt:

from what ever configuration files in linux, cmdline is not a configuration file literally. it is "command line - options" passed to kernel during start (what should be one line).

how is your codlin.txt processed check with
Code:
cat /proc/cmdline

there you will see how kernel got the file changed/processed.

(2nd Feb, 2014 04:55 AM)MacUsers Wrote: [ -> ]
Code:
sdhci-bcm2708.sync_after_dma=0 dwc_otg.lpm_enable=0 console=tty1 root=LABEL=xbian-copy rootflags=subvol=root/@,autodefrag,compress=lzo rootfstype=btrfs rootwait smsc95xx.turbo_mode=N elevator=cfq logo.nologo quiet noswap loglevel=0 mod_scsi.scan=async partswap startevent=mountall splash nohdparm --startup-event mountall loglevel=0

Anything not normal here? Cheers!!

remove - splash, loglevel=0, quiet.

check that first line of /boot/config.txt reads:
Code:
initramfs ...........
(3rd Feb, 2014 04:30 AM)IriDium Wrote: [ -> ]On boot if your USB is on sda then change root=/dev/sda and that should work.

I really struggle to understand how root=/dev/sda should work. I've two partitions on the USB drive, where sda1 is actually the "/" [root]. Xbian handles this differently or it's btrfs thing?

(3rd Feb, 2014 04:44 AM)mk01 Wrote: [ -> ]how is your codlin.txt processed check with
Code:
cat /proc/cmdline
there you will see how kernel got the file changed/processed.

It still doesn't make any sense to me.

Terminal
xbian@xbian ~ $ cat /proc/cmdline
dma.dmachans=0x7f35 bcm2708_fb.fbwidth=1920 bcm2708_fb.fbheight=1200 bcm2708.boardrev=0xe bcm2708.serial=0xb77a653a smsc95xx.macaddr=B8:27:EB:7A:65:3A sdhci-bcm2708.emmc_clock_freq=250000000 vc_mem.mem_base=0x1ec00000 vc_mem.mem_size=0x20000000 sdhci-bcm2708.sync_after_dma=0 dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootflags=subvol=root/@,autodefrag,compress=lzo rootfstype=btrfs rootwait smsc95xx.turbo_mode=N elevator=cfq logo.nologo quiet noswap loglevel=0 mod_scsi.scan=sync partswap startevent=mountall splash nohdparm --startup-event mountall loglevel=0
xbian@xbian ~ $ mount
/dev/sda1 on / type btrfs (rw,relatime,compress=lzo,ssd,space_cache,autodefrag)
devtmpfs on /dev type devtmpfs (rw,relatime,size=191796k,nr_inodes=47949,mode=755)
none on /dev/pts type devpts (rw,nosuid,noexec,relatime,mode=600)
none on /proc type proc (rw,nosuid,nodev,noexec,relatime)
none on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
none on /run type tmpfs (rw,nosuid,nodev,noexec,noatime,size=38376k)
/dev/mmcblk0p1 on /boot type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,​errors=remount-ro)
/dev/sda1 on /home type btrfs (rw,noatime,compress=lzo,ssd,space_cache,autodefrag)
/dev/sda1 on /lib/modules type btrfs (rw,noatime,compress=lzo,ssd,space_cache,autodefrag)
/dev/sda1 on /xbmc-backup type btrfs (rw,noatime,compress=lzo,ssd,space_cache,autodefrag)

according to the proc-filesystem, root is still "/dev/mmcblk0p2" but /dev/sda1 is found attached to the directory tree.

(3rd Feb, 2014 04:44 AM)mk01 Wrote: [ -> ]remove - splash, loglevel=0, quiet.

Trying out at the moment...
(3rd Feb, 2014 04:44 AM)mk01 Wrote: [ -> ]from what ever configuration files in linux, cmdline is not a configuration file literally. it is "command line - options" passed to kernel during start (what should be one line).

Looks like cmdline.txt honors just the first line, as you mentioned, even if it starts with a hash (#). The output started making a lot better sense now.
(3rd Feb, 2014 06:31 AM)MacUsers Wrote: [ -> ]according to the proc-filesystem, root is still "/dev/mmcblk0p2" but /dev/sda1 is found attached to the directory tree.

change cmdline as it should (one line)

if you want really investigate, always go for
Code:
cat /proc/$$/mountinfo

and compare against /sys device tree

(the point is that created block/char devices with their names doesn't need to represent what they look and mount (or findmnt) is also not digging device names from kernel dev tree).

(3rd Feb, 2014 07:47 AM)MacUsers Wrote: [ -> ]
(3rd Feb, 2014 04:44 AM)mk01 Wrote: [ -> ]from what ever configuration files in linux, cmdline is not a configuration file literally. it is "command line - options" passed to kernel during start (what should be one line).

Looks like cmdline.txt honors just the first line, as you mentioned, even if it starts with a hash (#). The output started making a lot better sense now.

this one particular problem (dev-fuzz) is combination of
1) something in the system taking root device from /proc/cmdline
2) something different from /boot/cmdline
3) udev creating symlink /dev/root -> device (probably the one from 1))
4) actual boot - if initramfs then it would be the second line, if direct boot kernel, then /proc/cmdline

and then when you use findmnt it will just revolve "readlink -e /dev/root" what is already wrong.
Another interesting output:

Terminal

xbian@xbian ~ $ cat /boot/cmdline.txt
sdhci-bcm2708.sync_after_dma=0 dwc_otg.lpm_enable=0 console=tty1 root=LABEL=xbian-beta2 rootflags=subvol=root/@,autodefrag,compress=lzo rootfstype=btrfs rootwait smsc95xx.turbo_mode=N elevator=cfq logo.nologo quiet noswap loglevel=0 mod_scsi.scan=sync partswap startevent=mountall splash nohdparm --startup-event mountall loglevel=0
xbian@xbian ~ $
xbian@xbian ~ $ cat /proc/cmdline
dma.dmachans=0x7f35 bcm2708_fb.fbwidth=1920 bcm2708_fb.fbheight=1200 bcm2708.boardrev=0xe bcm2708.serial=0xb77a653a smsc95xx.macaddr=B8:27:EB:7A:65:3A sdhci-bcm2708.emmc_clock_freq=250000000 vc_mem.mem_base=0x1ec00000 vc_mem.mem_size=0x20000000 sdhci-bcm2708.sync_after_dma=0 dwc_otg.lpm_enable=0 console=tty1 root=LABEL=xbian-beta2 rootflags=subvol=root/@,autodefrag,compress=lzo rootfstype=btrfs rootwait smsc95xx.turbo_mode=N elevator=cfq logo.nologo quiet noswap loglevel=0 mod_scsi.scan=sync partswap startevent=mountall splash nohdparm --startup-event mountall loglevel=0
xbian@xbian ~ $
xbian@xbian ~ $ sudo blkid -s LABEL -o value /dev/sda1
[sudo] password for xbian:
xbian-beta2
xbian@xbian ~ $
xbian@xbian ~ $ cat /proc/$(echo $$)/mountinfo
13 18 0:12 / /sys rw,nosuid,nodev,noexec,noatime - sysfs sysfs rw
14 18 0:3 / /proc rw,nosuid,nodev,noexec,noatime - proc proc rw
15 18 0:5 / /dev rw,relatime - devtmpfs udev rw,size=256k,nr_inodes=47268,mode=755
16 15 0:10 / /dev/pts rw,nosuid,noexec,relatime - devpts devpts rw,gid=5,mode=620
17 18 0:13 / /run rw,nosuid,noexec,noatime - tmpfs tmpfs rw,size=38372k,mode=755
18 1 0:14 /root/@ / rw,relatime - btrfs /dev/mmcblk0p2 rw,compress=lzo,ssd,space_cache,autodefrag
19 18 179:1 / /boot rw,relatime - vfat /dev/mmcblk0p1 rw,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,errors=rem​ount-ro
20 18 0:14 /home/@ /home rw,noatime - btrfs /dev/mmcblk0p2 rw,compress=lzo,ssd,space_cache,autodefrag
21 18 0:14 /modules/@ /lib/modules rw,noatime - btrfs /dev/mmcblk0p2 rw,compress=lzo,ssd,space_cache,autodefrag
22 18 0:14 /data/@ /xbmc-backup rw,noatime - btrfs /dev/mmcblk0p2 rw,compress=lzo,ssd,space_cache,autodefrag
xbian@xbian ~ $

Having fun with using Xbian...... (well, not with the reason Xbian actually meant to be for, yet)
Reference URL's