Как Создатель Загрузочного диска Ubuntu решает который файлы ISO принять как вход?

Текущая версия Создателя Загрузочного диска Ubuntu (в Ubuntu 16.04 LTS и более новые версии Ubuntu) проста в использовании. И это - инструмент клонирования, который делает это надежным.

Это кажется посвященным созданию загрузочных дисков USB для ароматов семейства Ubuntu и Ubuntu (Kubuntu, Lubuntu... Xubuntu).

Я протестировал с различными файлами ISO вне семейства Ubuntu:

  • Перевращения на основе Ubuntu обычно принимаются как вход
  • Несколько перевращений на основе Debian также приняты как вход
  • Живые файлы ISO Debian не приняты (они не появляются в поле для входных файлов после выбора их).
  • Другие основные дистрибутивы Linux, например, Fedora и OpenSUSE не приняты.

Это довольно сбивает с толку, и я делаю вывод, что существует некоторый фильтр, который решает который файлы ISO принять.

  • Как Создатель Загрузочного диска решает который файлы ISO принять как вход? Что это ищет в файле ISO или в имени файла?
1
задан 20 January 2020 в 21:26

1 ответ

Престижность @ubfan1 :-)

Я изучил код Python. Сначала это выглядело подавляющим, но скоро я нашел функцию, которая выглядела многообещающей:

В файле /usr/lib/python3/dist-packages/usbcreator/backends/udisks/backend.py существует

def _is_casper_cd(self, filename):
    for search in ['/.disk/info', '/.disk/mini-info']:
        cmd = ['isoinfo', '-J', '-i', filename, '-x', search]
        try:
            output = misc.popen(cmd, stderr=None)
            if output:
                return output
        except misc.USBCreatorProcessException:
            # TODO evand 2009-07-26: Error dialog.
            logging.error('Could not extract .disk/info.')
    return None

который указывает, что Создатель Загрузочного диска проверяет на содержание файлов /.disk/info и /.disk/mini-info.

Они присутствуют в Ubuntu, Debian и многих, но не всех перевращениях. Забавная вещь состоит в том, что различием между Debian 10.2 и Kali является запаздывающий перевод строки. Я сверился с Debian 8.8. Это содержит новую строку и принято Создателем Загрузочного диска.

sudodus@bionic64 /media/multimed-2/CD/debian $ sudo mount -o loop debian-live-8.8.0-amd64-standard.iso /mnt/lp1
mount: /mnt/lp1: VARNING: enhet skrivskyddad, monterad som endast läsbar.
sudodus@bionic64 /media/multimed-2/CD/debian $ cat /mnt/lp1/.disk/info
Debian GNU/Linux 8 "Jessie" - Official Snapshot amd64 LIVE/INSTALL Binary 20170506-14:26
sudodus@bionic64 /media/multimed-2/CD/debian $ sudo mount -o loop debian-live-10.2.0-amd64-standard.iso /mnt/lp2
mount: /mnt/lp2: VARNING: enhet skrivskyddad, monterad som endast läsbar.
sudodus@bionic64 /media/multimed-2/CD/debian $ cat /mnt/lp2/.disk/info
Official Debian GNU/Linux Live 10.2.0 standard 2019-11-16T10:15sudodus@bionic64 /media/multimed-2/CD/debian $ 

Таким образом, кажется, что я нашел ошибку. Создатель Загрузочного диска не принимает файл ISO, если нет запаздывающий символ новой строки в файле /.disk/info или /.disk/mini-info.

1
ответ дан 21 January 2020 в 08:47

Другие вопросы по тегам:

Похожие вопросы: