Для некоторых исследований решил поисследовать windows xp. С помощью qemu-img создал raw файл для диска. Установил windows в файл.
Вот вывод.
archinaragu@pc:~/rev> file xp.hdd
xp.hdd: DOS/MBR boot sector MS-MBR XP english at offset 0x12c "Invalid partition table" at offset 0x144 "Error loading operating system" at offset 0x163 "Missing operating system", disk signature 0x8ee08ee; partition 1 : ID=0x7, active, start-CHS (0x0,1,1), end-CHS (0x26,127,63), startsector 63, 4185153 sectors
Пробую смонтировать так.
archinaragu@pc:~/rev> sudo mount xp.hdd mnt/
mount: /home/archinaragu/rev/mnt: wrong fs type, bad option, bad superblock on /dev/loop0, missing codepage or helper program, or other error.
dmesg(1) may have more information after failed mount system call.
archinaragu@pc:~/rev> sudo mount -t ntfs xp.hdd mnt/
NTFS signature is missing.
Failed to mount '/dev/loop0': Invalid argument
The device '/dev/loop0' doesn't seem to have a valid NTFS.
Maybe the wrong device is used? Or the whole disk instead of a
partition (e.g. /dev/sda, not /dev/sda1)? Or the other way around?
archinaragu@pc:~/rev> sudo fdisk -l xp.hdd
Disk xp.hdd: 2 GiB, 2147483648 bytes, 4194304 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x08ee08ee
Device Boot Start End Sectors Size Id Type
xp.hdd1 * 63 4185215 4185153 2G 7 HPFS/NTFS/exFAT
archinaragu@pc:~/rev> sudo mount -t msdos xp.hdd mnt/
mount: /home/archinaragu/rev/mnt: /home/archinaragu/rev/xp.hdd is not a block device; try "-o loop".
dmesg(1) may have more information after failed mount system call.
archinaragu@pc:~/rev> sudo mount -o loop -t msdos xp.hdd mnt/
mount: /home/archinaragu/rev/mnt: wrong fs type, bad option, bad superblock on /dev/loop0, missing codepage or helper program, or other error.
dmesg(1) may have more information after failed mount system call.
fdisk показывает, что первый раздел начинается с 64 байта. Я с помощью dd решил пропустить 64 байта и записать всё остальное.
xp.hdd1 * 63 4185215 4185153 2G 7 HPFS/NTFS/exFAT
dd if=xp.hdd of=parted.hdd seek=64
Но файл становится простым набором данных. Ах, я не правильно делал, надо было skip писать.
dd if=xp.hdd of=parted.hdd skip=64
Теперь отображается как
archinaragu@pc:~/rev> file parted.hdd
parted.hdd: NTFS bootstrap NTLDR
Но всё равно пишет
archinaragu@pc:~/rev> sudo mount parted.hdd mnt/
mount: /home/archinaragu/rev/mnt: wrong fs type, bad option, bad superblock on /dev/loop0, missing codepage or helper program, or other error.
dmesg(1) may have more information after failed mount system call.