diff options
author | Christian Neukirchen <chneukirchen@gmail.com> | 2015-05-02 01:01:17 +0200 |
---|---|---|
committer | Juan RP <xtraeme@voidlinux.eu> | 2015-05-02 12:16:21 +0200 |
commit | 929175a025254315fd0773d1af23943233616db8 (patch) | |
tree | bc7b06a8b5c0ae4fcbeefa4600518b0df0acbf1e /dracut | |
parent | 1571ef8d4495c61f7061996d78c5f45db590930b (diff) | |
download | hrmpf-929175a025254315fd0773d1af23943233616db8.tar.gz hrmpf-929175a025254315fd0773d1af23943233616db8.tar.xz hrmpf-929175a025254315fd0773d1af23943233616db8.zip |
Support for MEMDISK
The .iso can now be booted using Grub (memdisk from Syslinux package): linux16 /memdisk initrd16 /path/to/iso As well as from Syslinux: LINUX memdisk INITRD path/to/iso
Diffstat (limited to 'dracut')
-rw-r--r-- | dracut/59-mtd.rules | 8 | ||||
-rw-r--r-- | dracut/61-mtd.rules | 20 | ||||
-rw-r--r-- | dracut/module-setup.sh | 7 | ||||
-rwxr-xr-x | dracut/mtd.sh | 7 |
4 files changed, 42 insertions, 0 deletions
diff --git a/dracut/59-mtd.rules b/dracut/59-mtd.rules new file mode 100644 index 0000000..d81a6ad --- /dev/null +++ b/dracut/59-mtd.rules @@ -0,0 +1,8 @@ +SUBSYSTEM!="block", GOTO="ps_end" +ACTION!="add|change", GOTO="ps_end" +# Also don't process disks that are slated to be a multipath device +ENV{DM_MULTIPATH_DEVICE_PATH}=="?*", GOTO="ps_end" + +KERNEL=="mtdblock[0-9]*", IMPORT BLKID + +LABEL="ps_end" diff --git a/dracut/61-mtd.rules b/dracut/61-mtd.rules new file mode 100644 index 0000000..0711d3a --- /dev/null +++ b/dracut/61-mtd.rules @@ -0,0 +1,20 @@ +SUBSYSTEM!="block", GOTO="pss_end" +ACTION!="add|change", GOTO="pss_end" +# Also don't process disks that are slated to be a multipath device +ENV{DM_MULTIPATH_DEVICE_PATH}=="?*", GOTO="pss_end" + +ACTION=="change", KERNEL=="dm-[0-9]*", ENV{DM_UDEV_DISABLE_OTHER_RULES_FLAG}!="1", GOTO="do_pss" +KERNEL=="mtdblock*", GOTO="do_pss" + +GOTO="pss_end" + +LABEL="do_pss" +# by-path (parent device path) +ENV{DEVTYPE}=="disk", ENV{ID_PATH}=="", DEVPATH!="*/virtual/*", IMPORT PATH_ID +ENV{DEVTYPE}=="disk", ENV{ID_PATH}=="?*", SYMLINK+="disk/by-path/$env{ID_PATH}" +ENV{DEVTYPE}=="partition", ENV{ID_PATH}=="?*", SYMLINK+="disk/by-path/$env{ID_PATH}-part%n" + +# by-label/by-uuid links (filesystem metadata) +ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}" +ENV{ID_FS_USAGE}=="filesystem|other", ENV{ID_FS_LABEL_ENC}=="?*", SYMLINK+="disk/by-label/$env{ID_FS_LABEL_ENC}" +LABEL="pss_end" diff --git a/dracut/module-setup.sh b/dracut/module-setup.sh index 765f41f..c6d1661 100644 --- a/dracut/module-setup.sh +++ b/dracut/module-setup.sh @@ -14,6 +14,13 @@ install() { inst /usr/bin/chroot inst /usr/bin/chmod inst /usr/bin/sed + + inst /usr/bin/memdiskfind + instmods mtdblock phram + inst_rules "$moddir/59-mtd.rules" "$moddir/61-mtd.rules" + prepare_udev_rules 59-mtd.rules 61-mtd.rules + inst_hook pre-udev 01 "$moddir/mtd.sh" + inst_hook pre-pivot 01 "$moddir/adduser.sh" inst_hook pre-pivot 02 "$moddir/display-manager-autologin.sh" inst_hook pre-pivot 03 "$moddir/copy-initramfs.sh" diff --git a/dracut/mtd.sh b/dracut/mtd.sh new file mode 100755 index 0000000..1d94a4e --- /dev/null +++ b/dracut/mtd.sh @@ -0,0 +1,7 @@ +#!/bin/sh +MEMDISK=$(memdiskfind) +if [ "$MEMDISK" ]; then + modprobe phram phram=memdisk,$MEMDISK + modprobe mtdblock + printf 'KERNEL=="mtdblock0", RUN+="/sbin/initqueue --settled --onetime --unique /sbin/dmsquash-live-root /dev/mtdblock0"\n' >> /etc/udev/rules.d/99-live-squash.rules +fi |