diff --git a/mkinitram b/mkinitram
index af40603635f245615f4e509e92dc21e8a2bee8cd..5f2b8026833e683ac527a04b01760fadb2c297b5 100644
--- a/mkinitram
+++ b/mkinitram
@@ -30,7 +30,7 @@ msg "Using kernel $kernel"
 # create empty image dir
 
 rm -rf "$image"
-mkdir -p "$image"
+mkdir -p "$image/dev" "$image/etc/rcS.d"
 
 # unpack busybox and deps
 tar -C $image -zxf $APKS/uclibc-[0-9]*.apk
@@ -38,7 +38,19 @@ tar -C $image -zxf $APKS/busybox-[0-9]*.apk
 tar -C $image -zxf $APKS/alpine-baselayout-[0-9]*.apk
 tar -C $image -zxf $APKS/apk-tools-[0-9]*.apk
 rm -f $image/.PKGINFO
-cp $init $image
+ln -sf /bin/busybox $image/init
+
+# create misc devs and enable boot scripts
+mknod $image/dev/null c 2 2
+ln -s ../init.d/mdev $image/etc/rcS.d/S10mdev
+ln -s ../init.d/hwdrivers $image/etc/rcS.d/S30hwdrivers
+ln -s ../init.d/modutils $image/etc/rcS.d/S40modutils
+
+# load those extra drivers
+for i in ide-cd usb-storage ide-disk; do
+	echo $i >> $image/etc/modules
+done
+
 
 # copy kernel modules
 kmods=$image/lib/modules/$kernel
diff --git a/mkiso b/mkiso
index 8b25c260e20d0212751231385bf03fb79336a424..af55146537680496591a90b76318b20fc1eae69c 100644
--- a/mkiso
+++ b/mkiso
@@ -14,7 +14,7 @@ default test
 
 label test
 	kernel /boot/vmlinuz
-	append initrd=/test.gz init=/sbin/init
+	append initrd=/test.gz init=/sbin/init quiet
 EOF