[arch-general] iniitcpio root device check

Dave Reisner d at falconindy.com
Sun Jul 31 16:56:44 EDT 2011


> Alright, I did that, but it is still doing the root device check and
> dropping into the recovery shell, so I have to press Ctrl-D to
> continue.
> 
> >From /etc/mkinitcpio.conf:
> MODULES="" # I was putting the modules here, now they are in install/9p
> HOOKS="base udev autodetect 9p filesystems"
> 
> ----< start /lib/initcpio/hooks/9p >----
> run_hook () {
>   modprobe 9p
>   modprobe 9pnet
>   modprobe fscache
>   modprobe virtio
>   modprobe virtio_ring
>   modprobe virtio_pci
>   modprobe 9pnet_virtio
> }

FYI, you can run:

  modprobe -a 9p 9pnet fscache ..

and save yourself some forks.

> 
> 9p_mount_handler() {
>  mount -t 9p -o ro,${rootflags} "$root" "$1"
> }
> 
> mount_handler=9p_mount_handler
> ----< end /lib/initcpio/hooks/9p >----
> 
> ----< start /lib/initcpio/install/9p >----
> #!/bin/bash
> 
> build() {
>   MODULES+=" 9p 9pnet fscache virtio virtio_ring virtio_pci 9pnet_virtio"
> }
> 
> help() {
>     cat<<HELPEOF
> This hook allows a 9p virtual filesystem passthrough to be used
> as the root filesystem when run qemu KVM.
> HELPEOF
> }
> ----< end /lib/initcpio/install/9p >----
> 
> It does not seem to matter where I put the 9p hook in the HOOKS string
> before rebuilding the initcpio images.
> 
> Dwight

My fault for suggesting a rotten name. You can't start a function name
with a number.

$ 9p() { echo hi; }
ash: syntax error: bad function name

Parsing failed on sourcing the hook, and mount_handler was never
declared. Rename the function to something that ash plays nicely with
and you should get some joy.

dave


More information about the arch-general mailing list