Я этого не делал, так как обычно qemu устанавливается из iso или существующего образа qemu, поэтому, вероятно, есть более простой способ, чем следующий. То, что вам не хватает, в значительной степени эквивалентно файловой системе, которая вам понадобится для chroot .
Можно попробовать
sudo debootstrap --arch=amd64 unstable ~/debian-tree/
, который спускается и распаковывает около 300 Мбайт файлов, которые вы можете «загрузить» как контейнер systemd и протестировать с помощью
sudo systemd-nspawn -D ~/debian-tree/ -b
См. man machinectl
. Вы можете смонтировать образ qemu, сделав его блочным устройством :
sudo apt-get install qemu-utils
sudo modprobe nbd
ls /dev/nbd* # gives /dev/nbd0 /dev/nbd1...
sudo qemu-nbd -c /dev/nbd0 /my/vm-image
sudo mount /dev/nbd0 /mnt/... # nbd0p1 if you have partitioned
sudo rsync -HSaxX ~/debian-tree/ /mnt/...
и скопируйте в него это дерево. При запуске qemu обычно требуется указать больший размер виртуальной машины, чтобы избежать сбоев :
.qemu-system-x86_64 -m 512M... -machine pc,accel=kvm -cpu host -enable-kvm
Использование -boot d
может привести к невозможности доступа к дискете.
-dpi
устанавливает разрешение (в точках на дюйм , также называемых пикселями на дюйм или 25,4 x пикселей/мм ).
Вы не видите никакой разницы, потому что большинство программ игнорируют разрешение, сообщаемое сервером X11 (, которое в большинстве случаев ненадежно ), или просто делают все в пикселях.
Вы можете легко проверить, запустив xdpyinfo
на дисплее Xephyr
:
$ Xephyr -dpi 20 :1 &
$ xdpyinfo -display :1 | grep resolution
resolution: 20x20 dots per inch
$ Xephyr -dpi 177 :2 &
$ xdpyinfo -display :2 | grep resolution
resolution: 177x177 dots per inch
Кстати, если вы хотите получить реальный размер монитора в приложении X11, вы должны получить через RandR , но xrandr
сообщает 0 x 0
на Xephyr
:
$ xrandr -display :2 | grep connected xrandr: Failed to get size of gamma for output default default connected 640x480+0+0 (normal left inverted right x axis y axis) 0mm x 0mm