ISO-Images und loopback-mount (was: Re: MA-Stammtisch im Oktober)

Datumsansicht Baumansicht Betreffansicht Attachement-Sicht

From: Raphael H. Becker (beckerra_at_rumms.uni-mannheim.de)
Date: 16. Sep 2001


Sebastian Stark wrote:
> Christian Eichert wrote:
> > und ich mach seit 3..4 Jahre mit Linux herum.
> > Wer kann mir eine Linux Scheibe brennen Suse oder Redhat
> > eine etwas neuere version?
> > Ich meine die letzte Redhat wäre schon ideal.
> Und in den 3..4 Jahren Linux hast du nie gelernt, dass man ISO images
> auch ohne CD-Brenner verwenden kann? :)

Na wenn schon Wissensluecken aufdecken, dann auch gleich schliessen:

Man kann Dateien, die Dateisysteme enthalten (zB ISO-Images) loopback
mounten und drauf zugreifen, zB so:

root_at_rhb:/# mount -o loop
/home/ftp/pub/BSD/FreeBSD/releases/i386/4.4rc4/iso/4.4rc4-install.iso
/cdrom/
(eine Zeile!)

Mal sehen, was uns "disk free" dazu sagt:
root_at_rhb:/# df -h /cdrom/
Filesystem Size Used Avail Use% Mounted on
/home/ftp/pub/BSD/FreeBSD/releases/i386/4.4rc4/iso/4.4rc4-install.iso
                      634M 634M 0 100% /cdrom

Ok, vielleicht noch n bisschen was interessantes zum Thema (alte Hasen
werden das wissen, Newbies sollte es einen "Weitblick" ueber die
Moeglichkeiten erahnen lassen), also n bisschen Hintergrundwissen und
so:

Nach dem selben schema kann man auch "flache" Dateien mit einem
Dateisystem "formatieren", zB ext2:

Erstmal ne Datei anlegen, ich moechte ca 10MB haben:

root_at_rhb:/tmp# dd if=/dev/zero of=image.ext2 count=10240 bs=1024
10240+0 records in
10240+0 records out

root_at_rhb:/tmp# du -k image.ext2
10256 image.ext2

... bis hier ist es lediglich eine 10MB grosse Datei, die im
wesentlichen "0" enthaelt.

Erzeugen wir das ext2-Filesystem innerhalb dieser Datei, -F wird
gebraucht, um die Warnung, dass es sich nicht um ein Blockdevice
handelt, zu umgehen:

root_at_rhb:/tmp# mke2fs -F image.ext2
mke2fs 1.21, 15-Jun-2001 for EXT2 FS 0.5b, 95/08/09
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
2560 inodes, 10240 blocks
512 blocks (5.00%) reserved for the super user
First data block=1
2 block groups
8192 blocks per group, 8192 fragments per group
1280 inodes per group
Superblock backups stored on blocks:
        8193

Writing inode tables: done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 28 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.

Wunderbar, hat geklappt (wer mke2fs kennt, dem wird das transcript
bekannt vorkommen). Dann mounten wir das Teil einfach mal loopback (es
ist nur eine Datei, deswegen) nach /mnt:

root_at_rhb:/tmp# mount -o loop image.ext2 /mnt/

... und sehen, dass wir tatsaechlich ein Filesystem gemountet haben, was
(hier) noch leer ist:
root_at_rhb:/# ls -la /mnt
total 17
drwxr-xr-x 3 root root 1024 Sep 16 04:58 ./
drwxr-xr-x 19 root root 4096 Sep 5 19:46 ../
drwxr-xr-x 2 root root 12288 Sep 16 04:58 lost+found/

... oder man kann eine grosse Datei auch wie eine ganze Festplatte
fdisk-en (mit der Einschraenkung, dass man bei fdisk die
Plattengeometrie explizit angeben muss, da eine "flache" Datei diese
Informationen nicht selbst anbietet).

Das Transcript einer solchen fdisk-session wuerde den Rahmen hier
sprengen, auf Anfrage mach ich das aber mal.

Schoenen Gruss
Raphael "in Unix ist alles mehr oder weniger eine Datei" Becker

-- 
t(){ while [ -n "$1" ];do T=/tmp/$$.html;lynx -source "http://dict.leo.\
org/?search=$1"|grep search\ result >$T&&w3m -dump $T;rm $T;shift;done;}
[ -n "$1" ]&&t "$@"||while read -ep dict2\> W;do t $W|more; done #by rhb
# http://rhb.swm.uni-mannheim.de/scripts/dict2


Datumsansicht Baumansicht Betreffansicht Attachement-Sicht

Dieses Archiv wurde generiert von hypermail 2.1.2 : 11. Mar 2002 CET