nfs Partitionen-images per loop lokal mounten

Jan-Benedict Glaw jbglaw at lug-owl.de
Fri Aug 20 17:27:17 CEST 2004


On Fri, 2004-08-20 16:48:07 +0200, Stefan Pump <lug at pumpnet.de>
wrote in message <002701c486c4$b51ff920$0700a8c0 at JSPWEB.NET>:
> On Fri, 2004-08-20 13:38:29 +0200, Stefan Pump <lug at pumpnet.de>
> elvis:~ # strace -o mount.log mount /mnt/sda2
> 
> elvis:~ # cat mount.log
[...]
> stat64("/dev/loop0", {st_mode=S_IFBLK|0660, st_rdev=makedev(7, 0),
> ...}) = 0
> open("/dev/loop0", O_RDONLY|O_LARGEFILEelvis:~ #
> "
> 
> Normaler Aufruf ohne strace liefert den erw?hnten "...wrong fs type,
> bad option, bad superblock on ..."

Er fummelt da zuletzt auf dem Loop-Device herum. Ist das noch aktiv,
oder hast Du vorher aufgeräumt?

> elvis:~ # strace -o nwvol.log nwvol
> NWVOL
> Copyright (C) 1998-1999 Jeff V. Merkey
> All Rights Reserved
> 
> 
> Scanning Disks ...
> NetWare Volume(s)
> 
> elvis:~ # cat nwvol.log
> execve("/usr/sbin/nwvol", ["nwvol"], [/* 56 vars */]) = 0
> uname({sys="Linux", node="elvis", ...}) = 0
[...]

> open("/dev/hda", O_RDWR)                = 3
> ioctl(3, 0x301, 0xbffff170)             = 0

$ grep 0x0301 /usr/include/linux/*.h
/usr/include/linux/hdreg.h:#define HDIO_GETGEO          0x0301  /* get device geometry */
/usr/include/linux/pci_ids.h:#define PCI_CLASS_DISPLAY_XGA 0x0301
/usr/include/linux/pci_ids.h:#define PCI_DEVICE_ID_SBE_WANXL100 0x0301
/usr/include/linux/pci_ids.h:#define PCI_DEVICE_ID_PC300_RX_1   0x0301
/usr/include/linux/ps2esdi.h:#define HDIO_GETGEO 0x0301

Nungut, nach dem Öffnen einer ganzen Platte (nicht etwa einer Partition,
das hätte ja logisch sein können) wird erstmal die Geometrie
abgefragt...

> lseek(3, 0, SEEK_SET)                   = 0
> read(3, "\353H\220\0\300\7LILO\1\0\25\7Z\0\0\0\0\0000\332\307=\27"...,
> 512) = 512
> lseek(3, 512, SEEK_SET)                 = 512
> read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"...,
> 512) = 512
> lseek(3, 1024, SEEK_SET)                = 1024
> read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"...,
> 512) = 512
> lseek(3, 1536, SEEK_SET)                = 1536
> read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"...,
> 512) = 512
> lseek(3, 2048, SEEK_SET)                = 2048
> read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"...,
> 512) = 512
> lseek(3, 2560, SEEK_SET)                = 2560
> read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"...,
> 512) = 512
> lseek(3, 3072, SEEK_SET)                = 3072
> read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"...,
> 512) = 512
> lseek(3, 3584, SEEK_SET)                = 3584
> read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"...,
> 512) = 512

...und dann in 512-Byte-Schritten der Anfang der Platte (inkl.
Partitions-Sektor) gelesen. Somit wird "nwvol" ein NWFS-Image wohl nie
erkennen, weil das Programm versucht, zu intelligent zu sein.

Also ist das schonmal ein totes Ende, da brauchst Du keine Zeit mehr zu
investieren:)

[...]
> _exit(0)                                = ?

> > Mach' doch mal einen symlink von "/dev/hd*" (sucht der da
> > wirklich:-)
> > auf /dev/loop2, nachdem Du per Hand das Image an loop2 geknotet
> > hast.
> 
> derselbe output:
> 
> elvis:/dev # losetup /dev/loop4 /path/to/img/sda2.img
> elvis:/dev # ln -s /dev/loop4 hdd1
> elvis:/dev # ll hdd*
> brw-rw----    1 root     disk      22,  64 Oct 14  2002 hdd
> lrwxrwxrwx    1 root     root           10 Aug 20 16:05 hdd1 ->
> /dev/loop4
> brw-rw----    1 root     disk      22,  74 Oct 14  2002 hdd10
> [...}
> 
> elvis:/dev # cat nwvol2.log
> execve("/usr/sbin/nwvol", ["nwvol"], [/* 57 vars */]) = 0

[...]

Kann also nicht klappen, wegen "siehe oben". Du kannst natürlich nochmal
versuchen, den Symlink für das Platten-Device (hdd) statt der Partition
anzulegen (hdd1), da die Partitionen ja netterweise allesamt ignoriert
werden:)

Aber bedenken solltest Du natürlich, in "naher Zukunft" die Symlinks
wieder gegen device nodes auszutauschen, damit das keine unnetten
Überraschungen gibt, wenn Du Dich an diese Spielereien garantiert nicht
mehr erinnerst:)

> in der proze?liste finde ich folgendes:
> bei h?ngen gebliebenen strace mount...

Oh, bitte bitte bitte, konfigurier' Dein Email-Programm um. Solcher
Output soll bitte nicht umgebrochen werden, und wenn schon Umlaute ohne
MIME-Encoding kommen, dann sollte Dein Email-Programm wenigestens ein
entsprechendes Content-Encoding setzen...

> root      2097  0.0  0.1  1468  552 ?        T    15:44   0:00 strace -o mount.log mount /mnt/sda2
> root      2098  0.0  0.1  1548  536 ?        D    15:44   0:00 mount /mnt/sda2
> root      2203  0.0  0.0     0    0 ?        SW   15:56   0:00 [nwfs-remirror]
> root      2204  0.0  0.0     0    0 ?        DW   15:56   0:00 [nwfs-flush]
> root      2205  0.0  0.0     0    0 ?        DW   15:56   0:00 [nwfs-callback]
> root      2206  0.0  0.0     0    0 ?        DW   15:56   0:00 [nwfs-async0]
> root      2207  0.0  0.0     0    0 ?        DW   15:56   0:00 [nwfs-async1]
> root      2208  0.0  0.0     0    0 ?        DW   15:56   0:00 [nwfs-async2]
> root      2209  0.0  0.0     0    0 ?        DW   15:56   0:00 [nwfs-async3]
> root      2210  0.0  0.0     0    0 ?        DW   15:56   0:00 [nwfs-async4]
> root      2211  0.0  0.0     0    0 ?        DW   15:56   0:00 [nwfs-async5]
> root      2212  0.0  0.0     0    0 ?        DW   15:56   0:00 [nwfs-async6]
> root      2213  0.0  0.0     0    0 ?        DW   15:56   0:00 [nwfs-async7]

Reboot tut gut:)  Allerdings sollte der strace bei mount-Versuchen
durchaus noch ein gutes Stückchen weitergehen; selbst, wenn der mount2
syscall hängenbleibt -- ein Ende beim Rumfummeln mit den loop devices
ist auf jeden Fall zu früh.

MfG, JBG

-- 
Jan-Benedict Glaw       jbglaw at lug-owl.de    . +49-172-7608481             _ O _
"Eine Freie Meinung in  einem Freien Kopf    | Gegen Zensur | Gegen Krieg  _ _ O
 fuer einen Freien Staat voll Freier Bürger" | im Internet! |   im Irak!   O O O
ret = do_actions((curr | FREE_SPEECH) & ~(NEW_COPYRIGHT_LAW | DRM | TCPA));
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lug-owl.de/pipermail/linux/attachments/20040820/d3cf8d58/attachment.sig>


More information about the Linux mailing list