Download script for creating disk-less boot

11 views
Skip to first unread message

karl....@gmail.com

unread,
Aug 30, 2006, 3:07:31 PM8/30/06
to Core-iSCSI
Hi,

Been a while since I've had some free time to play with iscsi, but I
have some time again now (mainly because it ties in with a few bits at
wokr) and I was wondering if there is still interest in a script for
setting up a diskless boot?

I've got quite a bit of it already done in terms of little scripts here
and there that I've written to help me along today, such as modified
mkinitrd for RH, to build a correct ramdisk etc. (Down from my previous
16MB at the start of the year, to a much nicer 2.4MB with a 1.5MB
Kernel (2.6.17.11).

One thing that would make it easier, would be to have a latest item
symlinked to the latest version of the tools and core-iscsi itself - Or
at the least a latest file containing the filename of the latest
version - Possibly the latter something like:

VERSION:3.5
FILE:core-iscsi-tools-v3.5

Would make it easier for any such script to check if a new version of
the tools or core were available and what filename they are in (I know
we could just use the VERSION, but the naming format may change
sometime, so this is more future-proof).

Any thoughts?

Thanks,

Karl

is...@digitaltadpole.com

unread,
Sep 6, 2006, 1:44:58 PM9/6/06
to Core-iSCSI
(Sorry, I've been away on vacation)
>From what I've seen this would be a GREAT addition. I would think a
HOW-TO would be appropriate, along with some comments about obvious
questions that will enter anyone's mind who's trying to create a
diskless-iscsi boot scenario. Some things that obviously come to mind
are: 1. Does the modules need to be "compiled in"? (answer: no) 2.
What are the areas where different distributions will differ at the
initrd level (ie. linuxrc if redhat or ? if other distros, modules.conf
vs modprobe.conf, etc). 3. Should busybox be used to compress the
image further by linking a bunch of executables into one executable?
(maybe a pointer to another HowTo would be appropriate) 4. How do you
deal with 32 vs 64 bit libraries and executables at the boot level?
5. What about clean shutdowns? How to do you do this? (an
explanation would be good here). 6. What about grub? How does/can
this fit into a diskless boot scenario? Can grub point to different
iscsi target luns? IMHO, there are so few people playing in this
space at the current time that discussing what was on your mind when
you made various decisions is about as important as a "cookbook" type
recipe for doing it because it would provide amplification of methods
and possibly alternative methods for getting the job done - it should
generate more discussion.

If you need a place to "put it", http://www.linux-iscsi.org has a wiki
section already existing that this would fit nicely into. This
newsgroup (and other iscsi newgroups) would be appropriate.

On a similar note, there is a solution already existing with diskless
iscsi boot as provided by OpenQRM that may be a good comparison or
reference point (but it's a little more "heavy weight" than a home
grown approach because it does more stuff).

Regards,

Mike

karl....@gmail.com

unread,
Sep 7, 2006, 3:40:35 AM9/7/06
to Core-iSCSI
Hi Mike,

Thanks for the reply. Was starting to think all life had gone from
Core-iSCSI for a minute :)

I can only really offer advice from the Redhat camp, as that's all we
use (Well, CentOS).

Busybox - I chose to use busybox to keep the initrd size down, ended at
about 2.55MB. Had to put a static compile of bash in as well -
Although I think if I fiddle the Core-iSCSI shell scripts enough, I can
probably remove the need for it and nash will do the job fine.

Libs - Not an issue as far as I am aware, everything used was
statically compiled, including the initiator.

CleanShutdown - Quite a simple one for RH, just a case of removing the
network script from the shutdown and reboot run-levels.

Grub - Looking in to this at the moment, although a similar solution to
a menu based boot selection can be created with PXE.

Basically the way I have my initrd built, it takes everything it needs
to boot, from the kernel args, those args being:

Interface name
Interface address+prefix
iSCSI Target IP
iSCSI Target Name
iSCSI Initiator Name

Will try and get some time at the weekend to write it up a bit.

Thanks,

Reply all
Reply to author
Forward
0 new messages