mkinitrd unification across distributions
 help / color / mirror / Atom feed
From: Chris Leech <cleech-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: open-iscsi-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org,
	systemd-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org,
	initramfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Cc: agrover-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org,
	Chris Leech <cleech-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Subject: [RFC] dracut iscsi module: early attempt to launch iscsid from the initramfs
Date: Mon, 10 Dec 2012 14:08:36 -0800	[thread overview]
Message-ID: <1355177316-25803-5-git-send-email-cleech@redhat.com> (raw)
In-Reply-To: <1355177316-25803-1-git-send-email-cleech-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>

Not complete, but working well for iBFT configured iSCSI boot for me.
---
 modules.d/95iscsi/cleanup-iscsi.sh        |  3 ++-
 modules.d/95iscsi/iscsid-initrd.service   | 10 ++++++++++
 modules.d/95iscsi/iscsid-initrd.socket    |  9 +++++++++
 modules.d/95iscsi/iscsiroot.sh            | 26 ++++++++++++++------------
 modules.d/95iscsi/iscsiuio-initrd.service | 11 +++++++++++
 modules.d/95iscsi/iscsiuio-initrd.socket  |  9 +++++++++
 modules.d/95iscsi/module-setup.sh         | 14 ++++++++++++--
 7 files changed, 67 insertions(+), 15 deletions(-)
 create mode 100644 modules.d/95iscsi/iscsid-initrd.service
 create mode 100644 modules.d/95iscsi/iscsid-initrd.socket
 create mode 100644 modules.d/95iscsi/iscsiuio-initrd.service
 create mode 100644 modules.d/95iscsi/iscsiuio-initrd.socket

diff --git a/modules.d/95iscsi/cleanup-iscsi.sh b/modules.d/95iscsi/cleanup-iscsi.sh
index a2d5951..0dc0ceb 100755
--- a/modules.d/95iscsi/cleanup-iscsi.sh
+++ b/modules.d/95iscsi/cleanup-iscsi.sh
@@ -2,5 +2,6 @@
 # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
 # ex: ts=8 sw=4 sts=4 et filetype=sh
 
-[ -e /sys/module/bnx2i ] && killproc iscsiuio
+NEWROOT=/sysroot
+iscsiadm --newroot $NEWROOT
 
diff --git a/modules.d/95iscsi/iscsid-initrd.service b/modules.d/95iscsi/iscsid-initrd.service
new file mode 100644
index 0000000..16dc4c4
--- /dev/null
+++ b/modules.d/95iscsi/iscsid-initrd.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=Open-iSCSI
+Documentation=man:iscsid(8) man:iscsiadm(8)
+After=network.target NetworkManager-wait-online.service
+
+[Service]
+Type=forking
+ExecStart=/usr/sbin/iscsid --initrd
+PIDFile=/var/run/iscsid.pid
+KillMode=none
diff --git a/modules.d/95iscsi/iscsid-initrd.socket b/modules.d/95iscsi/iscsid-initrd.socket
new file mode 100644
index 0000000..58a8d12
--- /dev/null
+++ b/modules.d/95iscsi/iscsid-initrd.socket
@@ -0,0 +1,9 @@
+[Unit]
+Description=Open-iSCSI iscsid Socket
+Documentation=man:iscsid(8) man:iscsiadm(8)
+
+[Socket]
+ListenStream=@ISCSIADM_ABSTRACT_NAMESPACE
+
+[Install]
+WantedBy=sockets.target
diff --git a/modules.d/95iscsi/iscsiroot.sh b/modules.d/95iscsi/iscsiroot.sh
index 1a8cc8d..c2766a1 100755
--- a/modules.d/95iscsi/iscsiroot.sh
+++ b/modules.d/95iscsi/iscsiroot.sh
@@ -49,7 +49,9 @@ if getargbool 0 rd.iscsi.firmware -d -y iscsi_firmware ; then
 	iscsi_param="$iscsi_param --param $p"
     done
 
-    iscsistart -b $iscsi_param
+    # iscsistart -b $iscsi_param
+    iscsiadm -m fw -l
+    iscsiadm -m session > /run/initramfs/iscsi.sessions
     exit 0
 fi
 
@@ -146,17 +148,17 @@ handle_netroot()
     # force udevsettle to break
     > $hookdir/initqueue/work
 
-    iscsistart -i $iscsi_initiator -t $iscsi_target_name        \
-        -g $iscsi_target_group -a $iscsi_target_ip      \
-        -p $iscsi_target_port \
-        ${iscsi_username+-u $iscsi_username} \
-        ${iscsi_password+-w $iscsi_password} \
-        ${iscsi_in_username+-U $iscsi_in_username} \
-        ${iscsi_in_password+-W $iscsi_in_password} \
-	${iscsi_iface_name+--param iface.iscsi_ifacename=$iscsi_iface_name} \
-	${iscsi_netdev_name+--param iface.net_ifacename=$iscsi_netdev_name} \
-        ${iscsi_param} \
-	|| :
+#    iscsistart -i $iscsi_initiator -t $iscsi_target_name        \
+#        -g $iscsi_target_group -a $iscsi_target_ip      \
+#        -p $iscsi_target_port \
+#        ${iscsi_username+-u $iscsi_username} \
+#        ${iscsi_password+-w $iscsi_password} \
+#        ${iscsi_in_username+-U $iscsi_in_username} \
+#        ${iscsi_in_password+-W $iscsi_in_password} \
+#	${iscsi_iface_name+--param iface.iscsi_ifacename=$iscsi_iface_name} \
+#	${iscsi_netdev_name+--param iface.net_ifacename=$iscsi_netdev_name} \
+#        ${iscsi_param} \
+#	|| :
 }
 
 # loop over all netroot parameter
diff --git a/modules.d/95iscsi/iscsiuio-initrd.service b/modules.d/95iscsi/iscsiuio-initrd.service
new file mode 100644
index 0000000..54883df
--- /dev/null
+++ b/modules.d/95iscsi/iscsiuio-initrd.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=iSCSI UserSpace I/O driver
+Documentation=man:iscsiuio(8)
+Before=iscsid.service
+After=network.target NetworkManager-wait-online.service
+
+[Service]
+Type=forking
+ExecStart=/usr/sbin/iscsiuio --initrd
+PIDFile=/var/run/iscsiuio.pid
+KillMode=none
diff --git a/modules.d/95iscsi/iscsiuio-initrd.socket b/modules.d/95iscsi/iscsiuio-initrd.socket
new file mode 100644
index 0000000..9eacc56
--- /dev/null
+++ b/modules.d/95iscsi/iscsiuio-initrd.socket
@@ -0,0 +1,9 @@
+[Unit]
+Description=Open-iSCSI iscsiuio
+Documentation=man:iscsiuio(8)
+
+[Socket]
+ListenStream=@ISCSID_UIP_ABSTRACT_NAMESPACE
+
+[Install]
+WantedBy=sockets.target
diff --git a/modules.d/95iscsi/module-setup.sh b/modules.d/95iscsi/module-setup.sh
index d251a0d..7acabbe 100755
--- a/modules.d/95iscsi/module-setup.sh
+++ b/modules.d/95iscsi/module-setup.sh
@@ -5,7 +5,7 @@
 check() {
     local _rootdev
     # If our prerequisites are not met, fail anyways.
-    type -P iscsistart hostname iscsi-iname >/dev/null || return 1
+    type -P iscsid iscsiadm hostname iscsi-iname >/dev/null || return 1
 
     # If hostonly was requested, fail the check if we are not actually
     # booting from root.
@@ -73,10 +73,20 @@ installkernel() {
 }
 
 install() {
-    dracut_install umount iscsistart hostname iscsi-iname
+    dracut_install iscsid iscsiadm umount hostname iscsi-iname
     dracut_install -o iscsiuio
+    dracut_install -o /etc/iscsi/initiatorname.iscsi
+    dracut_install -o /etc/iscsi/iscsid.conf
     inst_hook cmdline 90 "$moddir/parse-iscsiroot.sh"
     inst_hook cleanup 90 "$moddir/cleanup-iscsi.sh"
     inst "$moddir/iscsiroot.sh" "/sbin/iscsiroot"
     inst "$moddir/mount-lun.sh" "/bin/mount-lun.sh"
+
+    mkdir -p ${initdir}/${systemdsystemunitdir}/sockets.target.wants
+    inst_simple "${moddir}/iscsid-initrd.service" "${systemdsystemunitdir}/iscsid.service"
+    inst_simple "${moddir}/iscsid-initrd.socket" "${systemdsystemunitdir}/iscsid.socket"
+    ln -fs ../iscsid.socket "${initdir}/${systemdsystemunitdir}/sockets.target.wants/iscsid.socket"
+    inst_simple "${moddir}/iscsiuio-initrd.service" "${systemdsystemunitdir}/iscsiuio.service"
+    inst_simple "${moddir}/iscsiuio-initrd.socket" "${systemdsystemunitdir}/iscsiuio.socket"
+    ln -fs ../iscsiuio.socket "${initdir}/${systemdsystemunitdir}/sockets.target.wants/iscsiuio.socket"
 }
-- 
1.7.11.7

  parent reply	other threads:[~2012-12-10 22:08 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-12-10 22:08 [RFC] iscsid / systemd / dracut integration effort Chris Leech
     [not found] ` <1355177316-25803-1-git-send-email-cleech-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2012-12-10 22:08   ` [RFC] iscsid: add --initrd option to set run from initrd hint for systemd Chris Leech
2012-12-10 22:08   ` [RFC] iscsiadm, iscsid: newroot command to survive switch_root Chris Leech
2012-12-10 22:08   ` [RFC] iscsi unit files and helper script Chris Leech
     [not found]     ` <1355177316-25803-4-git-send-email-cleech-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2012-12-11 21:47       ` Mike Christie
     [not found]         ` <50C7A9D7.8080900-hcNo3dDEHLuVc3sceRu5cw@public.gmane.org>
2012-12-11 22:43           ` Chris Leech
2012-12-10 22:08   ` Chris Leech [this message]
2012-12-10 23:56   ` [systemd-devel] [RFC] iscsid / systemd / dracut integration effort "Jóhann B. Guðmundsson"
     [not found]     ` <50C67697.7020208-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2012-12-11 23:26       ` Chris Leech
     [not found]         ` <20121211232646.GC5307-r8IHplWLGbA5tHQWs+pTeqPFFGjUI2lm2LY78lusg7I@public.gmane.org>
2012-12-12  0:46           ` "Jóhann B. Guðmundsson"
2012-12-12 20:45           ` Tomasz Torcz
     [not found]             ` <20121212204545.GA23313-bmXekecGUa3k6X4NQihNpw@public.gmane.org>
2012-12-13  0:45               ` Andy Grover
2013-09-23 17:33           ` The Lee-Man
     [not found]             ` <b993ef26-ea4e-4dbe-8d9a-d86ad50c9fbc-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
2013-09-23 17:40               ` The Lee-Man
2013-10-01  2:24             ` Lennart Poettering
2012-12-14 19:01   ` Mike Christie

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1355177316-25803-5-git-send-email-cleech@redhat.com \
    --to=cleech-h+wxahxf7alqt0dzr+alfa@public.gmane.org \
    --cc=agrover-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
    --cc=initramfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=open-iscsi-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org \
    --cc=systemd-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox