Zalozil jsem bug u Gentoo:
https://bugs.gentoo.org/940751jsou tam postnuty vysledky ze sysrq, a hnije to v kernelu, podle:
# ps auxf | grep D
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 7358 0.0 0.0 0 0 ? D 11:32 0:00 \_ [kworker/u16:0+loop0]
root 9444 0.0 0.0 0 0 ? D 11:52 0:00 \_ [kworker/u16:4+flush-251:4]
v dmesg zadny error neni, disky jsou lokalni a bez chyb ve smartu
raid je ok:
# cat /proc/mdstat
Personalities : [raid0] [raid1] [raid10] [raid6] [raid5] [raid4]
md127 : active raid1 sdb2[2](W) sda2[0]
976497664 blocks super 1.2 [2/2] [UU]
bitmap: 3/8 pages [12KB], 65536KB chunk
unused devices: <none>
dm tohle?
# dmsetup info vg0-vmWinXP
Name: vg0-vmWinXP
State: ACTIVE
Read Ahead: 256
Tables present: LIVE
Open count: 1
Event number: 0
Major, minor: 251, 4
Number of targets: 1
UUID: LVM-KVkZOEFX23Qn7J0YkaFkaSUxt5KAvpHnegGxabY0xaBAHNOpssPEPi7WY6lfC36W
Ten LOOP je tam takto:
# losetup -l
NAME SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE DIO LOG-SEC
/dev/loop0 0 1016320 1 0 /dev/dm-4 0 512
... tvoren prikazem:
losetup -o $(( 512 * ( 2048 - 63 ) )) "$DRIVE_BOOT" "$DRIVE_FILE"
A je to z duvodu, aby C: partisna byla 4K aligned (prakticky je 1MiB aligned). Na LVM je modifikovany obraz disku s winXP, kde byla prvni partisna posunuta na zarovnanou pozici - sektor 2048, ale ten originalni bootloader si s tim neporadi a nebootuje to - pak uz jsem nedohledal jak opravit bootovani, protoze:
... jsem vymyslel rovnak na ohybak: vzal tech 63 sektoru od pocatku disku (kde je bootloader), nakopiroval je pred hranici prvni partisny, a ve QEMU bootuji z toho posunuteho loopdevice. Vysledek je:
- guest si mysli ze ma C: zacinajici na 63 sektoru a tedy bootuje ok
- host ma data zarovnana
Ta LVM partisna tedy obsahuje dve partition tables, jedna je na zacatku s 2048 offsetem pro C:, druha je pred koncem 1M bloku s 63 offsetem pro C:, prostredek prvniho 1M bloku je pak nevyuzit.