henry_flower: A melancholy wolf (Default)
henry_flower ([personal profile] henry_flower) wrote2025-05-14 09:12 pm

winiso2img v2

(Продовження саги про віндюка та його інсталяцію.)

Я помітив що аплікація gnome-disks вміє монтувати image files не питаючи ув polkit дозволу. Виявляється, монтувати loop дівайси можна через udisksctl без руту, тобто замість

$ sudo mount -t udf Win11_24H2_English_x64.iso /media

друкується

$ udisksctl loop-setup -f Win11_24H2_English_x64.iso
Mapped file Win11_24H2_English_x64.iso as /dev/loop0.

$ udisksctl mount -t udf -b /dev/loop0
Mounted /dev/loop0 at /run/media/alex/CCCOMA_X64FRE_EN-US_DV9

Таким чином, створювати окремі партішони, форматувати їх та копіювати результата до raw image можна також робити зовсім без руту. Наприклад, 2й партішон для ntfs:

$ truncate -s 6G lol.img
$ mkfs.ntfs -fF -s 512 -S 63 -H 255 -p $((boot_size + 2048)) lol.img

де boot_size розмір (ув секторах) 1го партішону.

Raw image генерується sfdisk'ом як

$ boot_size=$(( 1024*1024*1023 / 512))
$ setup_size=$(( 6*1024*1024*1024 / 512))

$ sfdisk w11.img << EOF
label: gpt
1 : start=2048, size=$boot_size, type=EBD0A0A2-B9E5-4433-87C0-68B6B72699C7, name="BOOT"
2 : start=$((boot_size + 2048)), size=$setup_size, type=EBD0A0A2-B9E5-4433-87C0-68B6B72699C7, name="INSTALL"
EOF

Потім, щоб втулити отой lol.img з ntfs до w11.img, треба вказати правильний офсета для dd і не забути про conv=notrunc:

$ dd if=lol.img of=w11.img conv=notrunc bs=512 seek=$((boot_size + 2048))

Post a comment in response:

If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting