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