Usermode-fs-tools/iso2stick: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
Строка 1: Строка 1:
'''iso2stick''' -- достаточно мощный конвертер, у которого много разных возможностей. Он перепаковывает официальные образы дистрибутивов ALT (в формате ISO-9660) в загрузочные образы USB-стиков (HDD-дисков). Для использования данной утилиты не требуется полномочий root, необходим только один пакет: [[usermode-fs-tools]].
'''iso2stick''' -- достаточно мощный конвертер, у которого много разных возможностей. Он перепаковывает официальные образы дистрибутивов ALT (в формате ISO-9660) в загрузочные образы USB-стиков (HDD-дисков). Для использования данной утилиты не требуется полномочий root, необходим только один пакет: [[usermode-fs-tools]] (в первую очередь пакет создавался ради этого скрипта-конвертера на POSIX shell размером более 1200 строк).


== Формальное описание ==
== Формальное описание ==
Строка 61: Строка 61:
* Возможность исправления "на лету" уже известных багов в определённых установочных образах.
* Возможность исправления "на лету" уже известных багов в определённых установочных образах.


== Режим 'foreign' ==
== РОДНОЙ режим ('native') ==


Интересной особенностью утилиты является возможность конвертирования дисков на одной аппаратной платформе для другой аппаратной платформы. Например, операцию можно выполнить, сидя за компьютером '''x86_64''', конвертируя диск для платформы '''aarch64'''. Данная возможность доступна с оговорками: в хостовой системе должен стоять '''grub''' (для любых целевых носителей, кроме '''e2k'''/'''e2kv4''') и на исходном ISO-9660 диске в репозитории '''ALTLinux/RPMS.main''' должны находиться требуемые RPM-пакеты (в основном, связанные с загрузчиком '''grub'''). Другими словами: для '''e2k'''/'''e2kv4''' никаких особых требований нет, но использовать Эльбрус в качестве хостовой системы для других архитектур не выйдет, для остальных аппаратных платформ исходный ISO-диск должен быть установочным дистрибутивом ALT.
В '''нативном''' режиме (например, когда мы сидим на '''ppc64le''' и конвертируем ISO-образ для того же '''ppc64le''') основные требования определяются утилитой '''grub2dirs'''. На Эльбрусах можно конвертировать образы только в '''нативном''' режиме, т.к. на них обычно не ставится '''grub'''. Конвертирование образов '''i586''' на '''x86_64''' также является '''нативным'''.
 
== ЧУЖОЙ режим ('foreign') ==
 
Интересной особенностью утилиты является возможность конвертирования образов на одной аппаратной платформе для другой аппаратной платформы. Например, операцию можно выполнить, сидя за компьютером '''x86_64''', конвертируя диск для платформы '''aarch64'''. Данная возможность доступна с оговорками: в хостовой системе должен быть установлен '''grub''' и на исходном диске ISO-9660 в репозитории '''ALTLinux/RPMS.main''' должны находиться требуемые RPM-пакеты, в основном, связанные с загрузчиком '''grub'''. Это ограничение действует для любых целевых носителей, кроме '''e2k'''/'''e2kv4'''. Другими словами: для конвертирования образов '''e2k'''/'''e2kv4''' на другой платформе никаких особых требований нет, но использовать Эльбрус в качестве хостовой системы для других архитектур без установленного '''grub''' не выйдет, для остальных аппаратных платформ исходный ISO-диск должен быть установочным дистрибутивом ALT.





Версия от 00:54, 17 ноября 2020

iso2stick -- достаточно мощный конвертер, у которого много разных возможностей. Он перепаковывает официальные образы дистрибутивов ALT (в формате ISO-9660) в загрузочные образы USB-стиков (HDD-дисков). Для использования данной утилиты не требуется полномочий root, необходим только один пакет: usermode-fs-tools (в первую очередь пакет создавался ради этого скрипта-конвертера на POSIX shell размером более 1200 строк).

Формальное описание

$ iso2stick -h
Usage: iso2stick [<options>...] [--] <iso9660> <image> [<size>]

Options:
  -b, --bios-only        Make BIOS-only boottable system on x86.
  -D, --datadir=<PATH>   Add specified files to the boot disk.
  -d, --dual-boot        Add both 32-bit and 64-bit UEFI firmware
                         boot loaders for 64-bit target system,
                         such as x86_64 or aarch64.
  -e, --excludes=<FILE>  Set list for exclude files from ISO-9660.
  -f, --files=<FILE>     Set list for include files from ISO-9660.
  -g, --guid-gpt         Use GUID/GPT disk label instead BIOS/MBR.
  -m, --mode=<MODE>      One of the followed repack modes: rescue,
                         deploy, install, live, install+rescue,
                         install+live or install+live+rescue.
  -L, --lang=<LIST>      List of the languages, for example:
                         '"ru_RU=Russian" "en_US=English"'.
  -l, --initlang=<CODE>  Initial/default language code
                         ('ru_RU' used by default).
  -n, --no-clean         Keep temporary files on exit.
  -P, --pad-space        Fill free space on EFI-part by zero's.
  -q, --quiet            Suppress additional diagnostic.
  -r, --reserved=<SIZE>  Reserved space on the boot disk, in MiB.
  -S, --swap=<SIZE>      Specify SWAP partition size, in MiB.
  -s, --secure-boot      Use ALT shim's for UEFI Secure Boot.
  -T, --timeout=<SECS>   Specify boot menu timeout, in seconds.
  -t, --target=<ARCH>    Use specified target architecture: i586,
                         x86_64, aarch64, armh, ppc64le or e2k/v4.
  -U, --uuid=<UUID>      Specify UUID of the ROOT filesystem.
  -u, --uefi-only        Make UEFI-only boottable system on x86.
  -v, --version          Show this program version and exit.
  -h, --help             Show this help message and exit.

Please, report bugs to https://bugzilla.altlinux.org/

Ключевые возможности

  • Для запуска не требуется полномочий root, операция выполняется обычным пользователем.
  • По умолчанию размер создаваемого образа стремится к минимуму, т.е. на нём не останется свободного места.
  • Но можно указать явно, сколько мегабайт необходимо зарезервировать либо задать требуемый размер образа.
  • Замена конгломерата загрузчиков с графикой только одним без графики: в ряде случаев это увеличивает надёжность.
  • Единое меню при любых вариантах загрузки: генерируется само либо создаётся на основе пользовательского шаблона.
  • Можно "оторвать" неподходящий режим загрузки, препятствующий решению некоторой задачи на "железе".
  • Можно убрать не нужные файлы второй стадии загрузки, сократив размер диска и число пунктов загрузочного меню.
  • Можно добавить указанные файлы на создаваемый образ диска.
  • Можно заменить некоторые файлы в создаваемом образе диска.
  • Можно передать набор своих скриптов-хуков, выполняемых непосредственно перед созданием образа.
  • Можно конвертировать диски, предназначенные для другой аппаратной платформы.

Пока не реализованы

  • Возможность углубляться в образы initrd (первая стадия загрузки) и squashfs (вторая стадия загрузки).
  • Возможность замены устаревшего и ненадёжного propagator новыми скриптами make-initrd.
  • Возможность перепаковки initrd другими инструментами в тех случаях, когда make-initrd не подходит.
  • Возможность исправления "на лету" уже известных багов в определённых установочных образах.

РОДНОЙ режим ('native')

В нативном режиме (например, когда мы сидим на ppc64le и конвертируем ISO-образ для того же ppc64le) основные требования определяются утилитой grub2dirs. На Эльбрусах можно конвертировать образы только в нативном режиме, т.к. на них обычно не ставится grub. Конвертирование образов i586 на x86_64 также является нативным.

ЧУЖОЙ режим ('foreign')

Интересной особенностью утилиты является возможность конвертирования образов на одной аппаратной платформе для другой аппаратной платформы. Например, операцию можно выполнить, сидя за компьютером x86_64, конвертируя диск для платформы aarch64. Данная возможность доступна с оговорками: в хостовой системе должен быть установлен grub и на исходном диске ISO-9660 в репозитории ALTLinux/RPMS.main должны находиться требуемые RPM-пакеты, в основном, связанные с загрузчиком grub. Это ограничение действует для любых целевых носителей, кроме e2k/e2kv4. Другими словами: для конвертирования образов e2k/e2kv4 на другой платформе никаких особых требований нет, но использовать Эльбрус в качестве хостовой системы для других архитектур без установленного grub не выйдет, для остальных аппаратных платформ исходный ISO-диск должен быть установочным дистрибутивом ALT.


Enjoy! ;-)