Re: Booting Debian-live-501 over HTTP
2009/9/4 Michal Suchanek <hramrach@centrum.cz>:
> Hello
>
> 2009/9/2 Daniel Baumann <daniel@debian.org>:
>> [ CC'ed to ensure you're not missing the answer ;), will follow up on
>> list only though. ]
>>
>> Pravin wrote:
>>> I also managed to boot debian over iscsi.
>>> I had to add open-iscsi tools into initramfs for enabling iscsi booting,
>>> but booting over iscsi is 3 times faster than booting over HTTPFS :-)
>>
>> i would be very, very much interested in patches to live-initramfs to
>> make iscsi booting out-of-the-box possible, and to live-manual to
>> document it.
>>
>>> I would be glad if I can help in improving network booting of Debian.
>>> Can you please guide me how and and where should I submit these modifications
>>> for review and testing?
>>
>> please post it on this list.
>
> I put together a small patch that is supposed to allow booting iso
> images from the web.
>
> This is quite helpful as it would obviate the need to store separate
> iso images for download and squashfs images for http boot.
>
Updated the patch to run with stock run-init.
All moinpoints have to be moved under /root for run-init to work so I
added one more move since unpacking an iso requires an additional
mountpoint.
Thanks
Michal
--- usr/share/initramfs-tools/scripts/live.orig 2009-09-03 23:25:10.000000000 +0200
+++ usr/share/initramfs-tools/scripts/live 2009-09-03 23:26:30.000000000 +0200
@@ -768,7 +768,7 @@
if [ -n "$url" ]
then
case "${extension}" in
- squashfs|tgz|tar)
+ iso|squashfs|tgz|tar)
if [ "${webfile}" = "FETCH" ]
then
case "$url" in
@@ -797,6 +797,12 @@
fi
[ ${?} -eq 0 ] && rc=0
[ "${extension}" = "tgz" ] && live_dest="ram"
+ if [ "${extension}" = "iso" ]
+ then
+ isoloop=$(setup_loop "${dest}/$(basename "${url}")" "loop" "/sys/block/loop*" "" '')
+ mount -t iso9660 "${isoloop}" "${mountpoint}"
+ rc=${?}
+ fi
break
;;
--- usr/share/initramfs-tools/scripts/live~ 2009-09-07 05:36:51.000000000 +0200
+++ usr/share/initramfs-tools/scripts/live 2009-09-07 16:08:41.000000000 +0200
@@ -8,6 +8,7 @@
echo "/root/usr/lib" >> /etc/ld.so.conf
mountpoint="/live/image"
+ext_mountpoint="/ext_volume"
LIVE_MEDIA_PATH="live"
root_persistence="live-rw"
@@ -756,19 +757,25 @@
do_httpmount ()
{
rc=1
- dest="${mountpoint}/${LIVE_MEDIA_PATH}"
- mount -t ramfs ram "${mountpoint}"
- mkdir -p "${dest}"
for webfile in HTTPFS FTPFS FETCH
do
- url="$(eval echo \"\$\{${webfile}\}\")"
- extension="$(echo "${url}" | sed 's/\(.*\)\.\(.*\)/\2/')"
+ local url="$(eval echo \"\$\{${webfile}\}\")"
+ local extension="$(echo "${url}" | sed 's/\(.*\)\.\(.*\)/\2/')"
if [ -n "$url" ]
then
case "${extension}" in
iso|squashfs|tgz|tar)
+ if [ "${extension}" = "iso" ]
+ then
+ mkdir -p "${ext_mountpoint}"
+ dest="${ext_mountpoint}"
+ else
+ local dest="${mountpoint}/${LIVE_MEDIA_PATH}"
+ mount -t ramfs ram "${mountpoint}"
+ mkdir -p "${dest}"
+ fi
if [ "${webfile}" = "FETCH" ]
then
case "$url" in
@@ -799,9 +806,9 @@
[ "${extension}" = "tgz" ] && live_dest="ram"
if [ "${extension}" = "iso" ]
then
- isoloop=$(setup_loop "${dest}/$(basename "${url}")" "loop" "/sys/block/loop*" "" '')
- mount -t iso9660 "${isoloop}" "${mountpoint}"
- rc=${?}
+ isoloop=$(setup_loop "${dest}/$(basename "${url}")" "loop" "/sys/block/loop*" "" '')
+ mount -t iso9660 "${isoloop}" "${mountpoint}"
+ rc=${?}
fi
break
;;
@@ -815,7 +822,12 @@
if [ ${rc} != 0 ]
then
- umount "${mountpoint}"
+ if [ -d "${ext_mountpoint}" ]
+ then
+ umount "${ext_mountpoint}"
+ rmdir "${ext_mountpoint}"
+ fi
+ umount "${mountpoint}"
fi
return ${rc}
--- usr/share/initramfs-tools/scripts/live-bottom/05mountpoints~ 2009-09-07 16:23:01.000000000 +0200
+++ usr/share/initramfs-tools/scripts/live-bottom/05mountpoints 2009-09-07 16:25:02.000000000 +0200
@@ -33,4 +33,10 @@
mount --move /live/image /root/live/image
fi
+if [ -d /ext_volume ]
+then
+ mkdir -p /root/live/ext_volume
+ mount --move /ext_volume /root/live/ext_volume
+fi
+
log_end_msg
Reply to: