Hey folks, I'm playing with AoE root on kvm using libvirt. I wrote a blog post: http://wp.colliertech.org/cj/?p=678 And I'm putting together a patch against git. I'd love to have some input from someone who's fiddled with this package before. Cheers, C.J.
diff --git a/conf/initramfs.conf b/conf/initramfs.conf
index 23dd249..8728107 100644
--- a/conf/initramfs.conf
+++ b/conf/initramfs.conf
@@ -40,11 +40,13 @@ KEYMAP=n
#
#
-# BOOT: [ local | nfs ]
+# BOOT: [ local | nfs | aoe ]
#
# local - Boot off of local media (harddrive, USB stick).
#
-# nfs - Boot using an NFS drive as the root of the drive.
+# nfs - Boot using an NFS export as the root filesystem.
+#
+# aoe - Boot using an AoE export as the root filesystem.
#
BOOT=local
diff --git a/hook-functions b/hook-functions
index 9d59dc1..216ed68 100644
--- a/hook-functions
+++ b/hook-functions
@@ -378,7 +378,7 @@ auto_add_modules()
base)
for x in ehci-hcd ohci-hcd uhci-hcd usbhid usb-storage ext2 \
ext3 ext4 ext4dev isofs jfs nfs reiserfs udf xfs af_packet \
- atkbd i8042 virtio_pci; do
+ atkbd i8042 virtio_pci aoe; do
manual_add_modules "${x}"
done
;;
diff --git a/scripts/aoe b/scripts/aoe
new file mode 100644
index 0000000..a3c70f5
--- /dev/null
+++ b/scripts/aoe
@@ -0,0 +1,38 @@
+# NFS filesystem mounting -*- shell-script -*-
+
+# FIXME This needs error checking
+
+retry_nr=0
+
+# parse nfs bootargs and mount nfs
+do_aoemount()
+{
+ configure_networking
+ mount ${ROOT} ${rootmnt}
+}
+
+# AoE root mounting
+mountroot()
+{
+ modprobe aoe
+
+ # Default delay is around 180s
+ # FIXME: add usplash_write info
+ if [ -z "${ROOTDELAY}" ]; then
+ delay=180
+ else
+ delay=${ROOTDELAY}
+ fi
+
+ echo > /dev/etherd/discover
+
+ # loop until aoemount succeeds
+ while [ ${retry_nr} -lt ${delay} ] && [ ! -e ${rootmnt}${init} ]; do
+ [ ${retry_nr} -gt 0 ] && \
+ [ "$quiet" != "y" ] && log_begin_msg "Retrying AoE mount"
+ do_aoemount
+ retry_nr=$(( ${retry_nr} + 1 ))
+ [ ! -e ${rootmnt}${init} ] && /bin/sleep 1
+ [ ${retry_nr} -gt 0 ] && [ "$quiet" != "y" ] && log_end_msg
+ done
+}
Attachment:
signature.asc
Description: This is a digitally signed message part