vmunix
было/является традиционным именем файла ядра в нескольких операционных системах Unix.
В Linux это значение было изменено на vmlinux
, а затем на vmlinuz
, когда было добавлено сжатие файлов ядра.
Обычно файл ядра мог находиться в корневом каталоге, а в некоторых дистрибутивах Linux по-прежнему можно увидеть символическую ссылку /vmlinuz
и /vmlinuz.old
, указывающую на текущую и предыдущую версии ядра соответственно. Но современные загрузчики могут легко обрабатывать более двух версий ядра, и соглашение эволюционировало до использования /boot/vmlinuz-<kernel version number>
.
Когда размеры дисков увеличились и адресация логических блоков стала нормой для дисков IDE (в период с 1994 по 2003 год ), BIOS систем до -1994 года не всегда поддерживали LBA и поэтому могли получить доступ к только первые 528 МБ или около того, пока не запустится операционная система с поддержкой LBA -. В результате было важно иметь возможность размещать файлы, необходимые для самых ранних фаз загрузки -, вплоть до отдельного небольшого раздела, который мог бы гарантированно находиться в самом начале диска. В Linux это привело к соглашению о файловой системе /boot
.
В двух словах, у вас будет возможность создать /boot
как отдельную файловую систему, которая будет содержать только ядро и файлы initrd
/ initramfs
текущей и любых предыдущих резервных версий ядра, а также любые файлы самому загрузчику может понадобиться (чаще всего каталог /boot/grub
).
Хотя все современные системы понимают LBA как нечто само собой разумеющееся, /boot
соглашение о файловой системе живет,так как его также можно использовать для загрузки системы, даже если корневая файловая система принимает форму, совершенно не распознаваемую системной прошивкой, например:
Некоторые системные микропрограммы включают встроенную -проверку существования распознаваемого загрузочного раздела перед попыткой загрузки с жесткого диска, даже если фактический загрузчик может загружаться с другого -] традиционные схемы дисков.
В справочной странице systemd.exec говорится, с моим акцентом:
The argument passed should be an absolute filename or wildcard expression, optionally prefixed with "-", which indicates that if the file does not exist, it will not be read and no error or warning message is logged.
Итак, вам нужен синтаксис:
EnvironmentFile=-/path/to/file
вместо:
-EnvironmentFile=/path/to/file