On Mon, 30 Sep 2013 13:10:01 +0200
Andreas Cadhalpun andreas.cadhal...@googlemail.com wrote:
j...@kitenet.net wrote:
iso-scan is part of the Debian installer.
However, it is only included in the hd-media initrd. There is no
reason to include it on the regular CD initrd, because isohybrid
allows mounting the USB stick directly.
How can isohybrid replace the findiso option? At least for me it makes
a huge difference, whether I can use my 32 GB stick for ONE
netinst.iso or ONE HUNDRED.
I said the same thing, in my post to the mailing list:
This is unnecessarily destructive, and makes it hard to install
multiple distributions on the same flashdrive, or to use it for
other purposes. The smallest flashdrive you can currently buy is
8GB; it makes no sense that you would have to have a different one
for every live ISO you might want to use.
Aside from that it is an unnecessary complexity to download the
hd-media initrd, which is why I never did that, but instead only
downloaded the loop.ko.
Even if you did download the hd-media initrd, it still wouldn't allow
you to use a boot parameter to specify the pathname of the ISO image
file you want to use. It appears that it just grabs anything it can find
that looks like a Debian ISO, and asks the user to confirm it.
Note that loop.ko is included on the ISO (but not the initrd), in the
form of /pool/main/l/linux/loop-modules-*.udeb packages.
By the way, I think that it is reason enough to include findiso on the
regular CD, when several persons request it. One always has to balance
gain and cost and the only cost that I can see, is that the ISO will
be larger. I don't know how big findiso is, but probably less then 100
kB. The loop.ko file is 37 kB, so together this gives 137 kB. Since
the netinst.iso is about 270 MB, it would grow by about 0.05 %. Who
will be hurt by that?
My patch, which seems to do everything that's necessary, is a few
hundred BYTES (uncompressed). So including that and the loop.ko module
in the initrd will increase the size of the ISO image by about one part
in ten thousand, which certainly doesn't seem worth worrying about.
On the other hand according to many post etc. on the subject, which I
read in the course of the last two years or so, I imagine that a lot
of people would like it. I certainly would have installed Debian
earlier, if this option had been included on the netinst.iso.
As you point out next, it appears that this functionality is included on
the Debian live CD. What possible rationale could there be for having it
there, but not on the installer image?
I actually didn't think to investigate the live CD. It never occurred to
me that one might have it, and the other not.
ian_br...@fastmail.net wrote:
As for the iso-scan package, if you search the source code for the
string findiso, you will not find it.
I don't know about the hd-media initrd, but there is a debian live ISO
at: http://live.debian.net/
There the option 'findiso=$iso' works as advertised
The hd-media initrd is no different from the ones on the standard
installer ISO, in this regard:
$ zcat debian-7.1.0-amd64-i386-netinst/install.{386,amd}/{,gtk/}initrd.gz |
strings | grep -i findiso
$
$ zcat debian-7.1.0-amd64-hd-media/{,gtk/}initrd.gz |
strings | grep -i findiso
$
My loopmount= patch is again attached to this message, for the sake of
the bug report.
-- Ian Bruce
--- debian-7.1.0-amd64.orig/var/lib/dpkg/info/cdrom-detect.postinst 2013-09-10 17:45:08.305375296 -0700
+++ debian-7.1.0-amd64/var/lib/dpkg/info/cdrom-detect.postinst 2013-09-28 00:14:38.058505180 -0700
@@ -17,9 +17,10 @@
try_mount() {
local device=$1
local type=$2
+ local options=$3
local ret=1
- if mount -t $type -o $OPTIONS $device /cdrom; then
+ if mount -t $type -o $options $device /cdrom; then
log CD-ROM mount succeeded: device=$device fstype=$type
if [ -e /cdrom/.disk/info ]; then
CDNAME=$(cat /cdrom/.disk/info)
@@ -68,6 +69,7 @@
CDFS=iso9660
FATFS=vfat
OPTIONS=ro,exec
+ LOOPFS=vfat,ext4,iso9660
;;
hurd)
CDFS=iso9660fs
@@ -95,6 +97,19 @@
mkdir /cdrom 2/dev/null || true
+for arg in $(cat /proc/cmdline); do
+ case $arg in
+ loopmount=*)
+ LOOPMOUNT=${arg#loopmount=}
+ LOOPMOUNT=${LOOPMOUNT#/}
+ ;;
+ esac
+done
+
+if [ $LOOPMOUNT ]; then
+ mkdir /loop 2/dev/null || true
+fi
+
# Need to wait for the usb device scan to complete
if [ $OS = linux ]; then
for count in 1 2 3 4 5 6 8 9 10; do
@@ -109,26 +124,45 @@
fi
while true; do
- WRONG=
+ WRONG=''
- devices=$(list-devices cd; list-devices maybe-usb-floppy)
- for device in $devices; do
- if try_mount $device $CDFS; then
- break 2
- fi
- done
-
- devices=$(list-devices usb-partition)
- for device in $devices; do
- if try_mount $device $CDFS; then
- db_set cdrom-detect/hybrid true
- break 2
- fi
- if try_mount $device $FATFS; then
- db_set cdrom-detect/usb-hdd true
- break 2
- fi
-