Только блочные устройства имеют UUID (, которые можно найти ).
Файл не является блочным устройством, петлевое устройство превращает его в одно.
Таким образом, чтобы найти UUID файла изображения, сначала должно существовать петлевое устройство.
Тем не менее, ваша запись в fstab является циклическим монтированием, т.е. петлевое устройство создается только при его монтировании (и немедленно удаляется при размонтировании ), поэтому оно не существует до его монтирования (и после вы размонтируете его ), и так... UUID не найден, потому что петлевого устройства не существует.
Для циклического монтирования вполне допустимо указывать путь к файлу.
В противном случае вам понадобится сценарий инициализации, который настраивает устройства цикла перед попыткой их монтирования (, а затем избавляется от опции монтирования цикла ).
Команды hostname
в распространенных наборах инструментов, включая BusyBox, не возвращаются к файлам при запросе имени хоста. Они сообщают только то, что ядро возвращает им как имя хоста из системного вызова, которое ядро инициализирует строкой, такой как «(none )», которую можно изменить путем перенастройки и пересборки ядра. (В терминологии systemd это динамическое имя хоста , также известное как переходное имя хоста ; тот, о котором на самом деле сообщает Linux, ядро. )Там нет "файла по умолчанию".
Обычно существует одна -служба выстрела, которая запускается при запуске системы, довольно рано, просматривает эти различные файлы, извлекает имя хоста и инициализирует им имя хоста ядра. (В терминологии systemd эта строка конфигурации представляет собой статическое имя хоста . )Например:
hostname
сервис, который запускает команду set-dynamic-hostname
набора инструментов после монтирования локальной файловой системы и перед входом пользователя в систему. Работа делится на то, что выполняется (только )при изменении конфигурации, и то, что выполняется при (каждой )начальной загрузке системы :. /etc/hostname
и /etc/HOSTNAME
, среди прочих источников (, поскольку разные операционные системы настраивают его по-разному ), и создает объединенный rc.conf
.rc.conf
для настройки переменной среды hostname
этой службы. set-dynamic-hostname
не нужно заботиться обо всех возможностях источника конфигурации, она просто берет переменную среды из среды, настроенной для службы, и задает из нее динамическое имя хоста. systemd
и выполняется еще до запуска управления службами. Сама программа systemd
идет и читает /etc/hostname
(, а также /proc/cmdline
, но , а не /etc/HOSTNAME
, ни /etc/default/hostname
, ни /etc/sysconfig/network
), и передает это ядру. /etc/hostname
с откатом к переменной оболочки, считываемой из rc.conf
, и устанавливает динамическое имя хоста. от его стоимости. Если вы строите систему «с нуля», вам придется сделать аналогичный сервис. Инструменты BusyBox и ToyBox для установки имени хоста из файла — hostname -F "${filename}"
, поэтому вам придется создать службу, которая запускает эту команду для /etc/hostname
или какого-либо подобного файла.
BusyBox поставляется с набором инструментов для управления сервисом runit, и простой сервис runit будет чем-то вроде:
#!/bin/sh -e exec 2>&1 exec hostname -F /etc/hostname
hostnamectl
. справочные страницы systemd. Freedesktop.org. set-dynamic-hostname
». Руководство по командам пользователя . нош набор инструментов. Программное обеспечение. rc.conf
слияние ". Направляющая ноша . Программное обеспечение. hostname
.Список команд Toybox . Landley.net. Итак, вы строите эту систему с нуля и спрашиваете, где настраивается имя хоста?
Простой ответ заключается в том, что это не так. Текущее имя хоста хранится внутри ядра, и, как и большинство других вещей, ядро по умолчанию не читает никаких файлов.
Что-то при запуске вашей системы должно прочитать файл конфигурации (по вашему выбору )и установить имя хоста ядра. Это должно происходить при каждом запуске.