Portál AbcLinuxu, 10. května 2025 16:43
Snažím se o připojení obrazu SD karty. Mám ho v image.bin souboru.
Info o souboru:
$ file image.bin
image.bin: x86 boot sector, code offset 0x3c, OEM-ID "MSWIN4.1",
sectors/cluster 64, reserved sectors 6308, Media descriptor 0xf8, heads 255,
sectors 7720832 (volumes > 32 MB) , FAT (32 bit), sectors/FAT 942,
reserved3 0x800000, serial number 0x74c022ac, label: " "
Připojím ho jako blokové zařízení:
$ sudo losetup -o $((63 * 512)) /dev/loop0 image.bin
Mountnu ho:
$ sudo mount /dev/loop0 ~/image -t vfat
Problém je, že dostávám v dmesg:VFS: Can't find a valid FAT filesystem on dev loop0.
Image file je ok. Protože když ho přes dd
nakopíruju na sd kartu, kterou připojím tak normálně funguje.
Co mi vrtá hlavou je, jak zjistit startsector. Našel jsem podobný příklad kde byl sektor 63 (proto ten $((63 * 512))
). Bohužel to nejde ani bez -o $((63 * 512))
.
Řešení dotazu:
x86 boot sector, code offset 0x3c, OEM-ID "MSWIN4.1"
". Já právě nevím jak ten offset zjistit.
Pokud nezadám offset, dmesg vypíše toto:
FAT: bogus number of reserved sectors
VFS: Can't find a valid FAT filesystem on dev loop0.
Špíš to vypadá jako by to byl poškozený FAT32. Jenže na SD kartě to normálně jede, tak nevím.
mount image.bin ~/image -o loop -t vfat
/dev/sdb
) nebo oddíl (např. /dev/sdb1
)?
fdisk -l
na ten obraz?
fdisk -l image.bin
You must set cylinders.
You can do this from the extra functions menu.
Disk image.bin: 0 MB, 0 bytes
255 heads, 63 sectors/track, 0 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
sudo mount -o loop image.bin ~/image
$ sudo mount /dev/loop0 -o loop ~/image -t vfata nebo jak říká Atrament pouze mount.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.