d7689f30c7
Overview of the changes: - ARM support: separate ext2 /boot, no LILO - avoid race condition with devmapper - trap ERR so that -e in shebang doesn't result in extra cleanup hassle - configurable root filesystem type (ext4 by default) - jumps through parted hoops Details: 1. LILO is x86-specific while the rest of the script can be used to prepare e.g. Marvell ArmadaXP or CuBox images; we can generally count on uboot supporting ext2 for relatively sane platforms but not ext4 that would be a better root filesystem performance-wise. 2. Apparently /dev/mapper/loopXpY can be still missing at the time when kpartx returns and pop up a bit later... sit there, wait and check for it. 3. If something went wrong with any command of the script it would bail out due to -e in shebang; it is now better to clean up the loopback device and its mappings in this situation either. 4. One size doesn't fit all, really. 5. The parted sizing was sloppy as in broken, now it's just half insane. Someone's decision to stick units and auto-alignment knobs into a single one was apparently hilarious... http://www.gnu.org/software/parted/manual/parted.html#unit Manual loop/dm cleanup is described in documentation just in case. /boot size meter is suboptimal in terms of additional I/O incurred, will be most likely rewritten to make use of advance "du -s".
35 lines
2.0 KiB
Plaintext
35 lines
2.0 KiB
Plaintext
== Сборка образов VM ==
|
||
|
||
*ВНИМАНИЕ:* заключительная операция создания образа жёсткого диска
|
||
из архива с содержимым корневой файловой системы требует доступа
|
||
к sudo и разрешения на выполнение скрипта bin/tar2fs в корневом
|
||
каталоге метапрофиля при установке mkimage-profiles из пакета
|
||
(это в планах исправить, но подход к libguestfs пока успехом
|
||
не увенчался).
|
||
|
||
Соответствующий фрагмент конфигурации sudo(8) может выглядеть как:
|
||
|
||
mike ALL=NOPASSWD: /usr/share/mkimage-profiles/bin/tar2fs
|
||
|
||
При работе с локальной копией mkimage-profiles.git следует иметь
|
||
в виду, что предоставлять недоверенному пользователю право выполнять
|
||
от имени root доступный ему по записи скрипт равнозначно предоставлению
|
||
полных привилегий root.
|
||
|
||
Для работы с более специфичными форматами, чем raw ("буквальный"
|
||
образ диска), потребуется утилита qemu-img из одноименного пакета;
|
||
см. тж. вывод команды make help/vm
|
||
|
||
Также потребуется пакет multipath-tools (/sbin/kpartx).
|
||
|
||
Пример сборки и запуска VM:
|
||
|
||
$ make ROOTPW=reallysecret1 vm/bare.img && kvm -hda ~/out/bare.img
|
||
|
||
Если при сборке образа файловой системы произойдёт сбой, может оказаться
|
||
нужным вручную освободить используемые loop-устройства, например, так:
|
||
|
||
# losetup -a
|
||
# kpartx -d /dev/loop0
|
||
# losetup -d /dev/loop0
|