Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Last revision Both sides next revision | ||
sanboot:debian_etch_iscsi [2007/10/25 10:28] gervystar |
sanboot:debian_etch_iscsi [2007/11/06 08:25] gervystar |
||
---|---|---|---|
Line 10: | Line 10: | ||
This howto is based on the following assumptions: | This howto is based on the following assumptions: | ||
- | * a base debian >= etch with all the security updates | + | * a base debian etch with all the security updates |
* the system is installed on a single partition "/" on /dev/sda1 | * the system is installed on a single partition "/" on /dev/sda1 | ||
* there is an already done iscsi target on an iscsi server | * there is an already done iscsi target on an iscsi server | ||
* there is a working dhcp server | * there is a working dhcp server | ||
+ | |||
+ | ==== Compile iscsistart and fwparam_ibft ==== | ||
Since two fundamental tools from open-iscsi are not included in the debian package, they have to be compiled from the sources with the following steps (i have used a different machine for all the compilation stuff). | Since two fundamental tools from open-iscsi are not included in the debian package, they have to be compiled from the sources with the following steps (i have used a different machine for all the compilation stuff). | ||
Line 31: | Line 33: | ||
The two files needed are ''usr/iscsistart'' and ''utils/fwparam_ibft/fwparam_ibft'' so they have to be copied in ''/usr/sbin''. | The two files needed are ''usr/iscsistart'' and ''utils/fwparam_ibft/fwparam_ibft'' so they have to be copied in ''/usr/sbin''. | ||
+ | |||
+ | ==== Install the needed packages ==== | ||
+ | |||
+ | apt-get install iproute | ||
+ | |||
+ | ==== Disable networking scripts ==== | ||
+ | |||
+ | The file ''/etc/network/interfaces'' must contain only the information needed to setup the loopback adapter or some additional network cards not used in the iSCSI boot process. | ||
+ | If you have only one interface (in example eth0), be sure to have a stanza like this in ''/etc/network/interfaces'' | ||
+ | |||
+ | <code> | ||
+ | auto eth0 | ||
+ | iface eth0 inet manual | ||
+ | </code> | ||
+ | |||
+ | So ifupdown will report the network card as "up", otherwise some script will not work well (in exemple the nfs mount). | ||
+ | |||
+ | ==== Create the initramfs scripts ==== | ||
Create two scripts shown below. These scripts have to be executable. | Create two scripts shown below. These scripts have to be executable. | ||
Line 124: | Line 144: | ||
echo "Setting up networking on $iSCSI_INITIATOR_IF..." | echo "Setting up networking on $iSCSI_INITIATOR_IF..." | ||
ip addr add $iSCSI_INITIATOR_IPADDR/$iSCSI_INITIATOR_MASK brd + dev $iSCSI_INITIATOR_IF | ip addr add $iSCSI_INITIATOR_IPADDR/$iSCSI_INITIATOR_MASK brd + dev $iSCSI_INITIATOR_IF | ||
+ | ip route add default via $iSCSI_INITIATOR_GATEWAY | ||
echo "Connecting to iSCSI target $iSCSI_TARGET_NAME on $iSCSI_TARGET_IPADDR..." | echo "Connecting to iSCSI target $iSCSI_TARGET_NAME on $iSCSI_TARGET_IPADDR..." | ||
iscsistart -i $iSCSI_INITIATOR_NAME -t $iSCSI_TARGET_NAME -g 1 -a $iSCSI_TARGET_IPADDR | iscsistart -i $iSCSI_INITIATOR_NAME -t $iSCSI_TARGET_NAME -g 1 -a $iSCSI_TARGET_IPADDR | ||
+ | sleep 5 | ||
;; | ;; | ||
esac | esac | ||
</code> | </code> | ||
+ | |||
+ | |||
+ | ===== Using gPXE to boot over iSCSI ===== | ||
+ | Since my network cards don't support booting via iSCSI, I've used the great gPXE, loading it after a "standard" PXE request. | ||
+ | This is called [[:pxechaining|PXE Chainloading]] | ||
+ | |||
+ | A separate stanza containing the right ''root-path'' option should be created for each host in ''/etc/dhcp3/dhcpd.conf'', like in the example. | ||
+ | |||
+ | <code> | ||
+ | host iscsi-test { | ||
+ | hardware ethernet 00:0C:29:5C:53:C2; | ||
+ | fixed-address 192.168.23.195; | ||
+ | filename ""; | ||
+ | option root-path "iscsi:192.168.23.2::::iqn.2007-10.org.appliedgenomics:test.disk1"; | ||
+ | } | ||
+ | </code> | ||
+ |