[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#512176: initramfs-tools: [PATCH] Make rootfstype working



On Sun, 18 Jan 2009, Dmitry Nezhevenko wrote:

> Hi. I'm trying to get something like LiveFlash working with btrfs as root
> filesystem. Currently debian versions of blkid(8) and other e2fsprogs
> binaries don't recognize it. According to initramfs-tools(8) it's possible
> to specify filesystem type manually at boot time using "rootfstype=my_fs"
> parameter. 

right!
 
> Current version of initramfs-tools waits for root device to appear and
> checks that filesystem type can be detected:
> 
> 		while [ ! -e "${ROOT}" ] \
> 		|| ! $(get_fstype "${ROOT}" >/dev/null); do
> 			/bin/sleep 0.1
> 			slumber=$(( ${slumber} - 1 ))
> 			[ ${slumber} -gt 0 ] || break
> 		done
> 
> But get_fstype don't understand btrfs, so it just waits for timeout here.
> My problem is that ROOTFSTYPE is used only _after_ this loop  and there is
> no way to workaround it.
> 
> I think that we should allow get_fstype to fail if filesystem type was
> provided manually at boot time. We can just check something like [ -z
> "${ROOTFSTYPE}" ]. 
> 
> Please take a look to attached patch as a reference fix.

have a look where slumber is set.
 
>  		slumber=$(( ${slumber} * 10 ))
>  		while [ ! -e "${ROOT}" ] \
> -		|| ! $(get_fstype "${ROOT}" >/dev/null); do
> +		|| ( [ -z "${ROOTFSTYPE}" ] && ! $(get_fstype "${ROOT}" >/dev/null) ); do
>  			/bin/sleep 0.1
>  			slumber=$(( ${slumber} - 1 ))
>  			[ ${slumber} -gt 0 ] || break

just set rootfstype *and* rootdelay.

unless some convincing info comes up, i'll close that bug away ;)

kind regards

-- 
maks



Reply to: