LINUX.ORG.RU

initramfs занимает много места

 , , ,


0

2

Дистрибутив ArchLinux. При очередном обновлении ядра возникла ошибка нехватки места на EFI разделе для initramfs-fallback. Пошел проверять. Вижу: основной инитрам занимает места 30мб, сколько раньше занимал fallback. Я увеличил раздел. Что получил: основной инитрам те же 30мб, а fallback 60mb. Чем может быть вызвано такое разжирение инитрама? При установке он занимал места меньше раза в 3.

★★☆

в файле /etc/initramfs-tools/initramfs.conf измени значение параметра на dep

# MODULES: [ most | netboot | dep | list ]  
# most - Add most filesystem and all harddrive drivers.   
# dep - Try and guess which modules to load.    
# netboot - Add the base modules, network modules, but skip block devices.   
# list - Only include modules from the 'additional modules' list   
MODULES=dep   

и перепакуй инитрамфс

с dep в инитрамфс впихиваются только необходимые для данной системы модули.
инитрамфс получается маленький, но не универсальный.
если захочешь перепрыгивать на другой компухтер верни most и перепакуй. с ним в инитрамфс впихивается наибольшее количество модулей. и на новом железе линух запустится более-менее нормально.

pfg ★★★★★
()
Ответ на: комментарий от pfg

Клоунов ищи в другом месте. Я дал ответ как сделать то, что хочет автор.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от pfg

На арче такого файла нет :) Меня не особо напрягает размер инитрама. Мне интересно, как это он так разжирел(настройки я не трогал)

Werenter ★★☆
() автор топика
Ответ на: комментарий от Werenter

Например так:

mkdir initramfs-tmp
cd initramfs-tmp
cat /boot/initrd.img-5.10.0-20-686-pae | gunzip | cpio -i

После этого в initramfs-tmp будет распакованный /boot/initrd.img-5.10.0-20-686-pae

Файл у тебя, конечно, называется по-другому. Возможно, вместо gunzip надо будет другой распаковщик использовать (unxz например).

firkax ★★★★★
()
Ответ на: комментарий от Rootlexx

Ну что за глупый вопрос. Конечно-же для того, чтобы «При очередном обновлении ядра возникла ошибка нехватки места на EFI разделе».

andytux ★★★★★
()
Ответ на: комментарий от andytux

не компилить в ядро драйвера базовых фс, а пихать их в файлы расположенные на легкодоступных фс.
говоря о ядре linux, подразумеваем ext[2-4]/nfs - как и про солярку ufs/zfs.
это ж какой факап выбора опций, имхо.

etwrq ★★★★★
()
Последнее исправление: etwrq (всего исправлений: 1)
Ответ на: комментарий от Rootlexx

Все просто - изначально делал загрузку через EFISTUB, когда поменял на grub, решил оставить ядро и инитрам на ESP.

Werenter ★★☆
() автор топика
Последнее исправление: Werenter (всего исправлений: 1)
Ответ на: комментарий от firkax

Шутка не удалась, systemd занимает немного места. Половину где-то забили прошивки и драйвера, а вторую половину либы.

Werenter ★★☆
() автор топика

Наступил уже 2023 год, а Линукс всё ещё сидит с костылём initramfs, использовать который не пришло в голову авторам ни одной нормальной ОС.

X512 ★★★★★
()
Последнее исправление: X512 (всего исправлений: 1)
Ответ на: комментарий от Werenter

настройки я не трогал

Однажды они сами их трогали. На zstd насильно переехали. Где-то в районе ядра 5.10.

А я себе вообще сжатие отключил в /etc/mkinitcpio.conf ) 170М initramfs-linux-fallback.img Места не жалко. Зато пару тактов ЦП электричества сэкономил на распаковке )

Toxo2 ★★★★
()
Ответ на: комментарий от Werenter

Альтернативное решение: научить загрузчик читать необходимые файлы для запуска ядра как это делают нормальные ОС.

X512 ★★★★★
()
Ответ на: комментарий от X512

А нужен ли загрузчик вообще? Я про UEFI системы. Если у тебя линукс является единственной ОС то лучше его напрямую прописать в EFISTUB, и получаем систему без загрузчика вообще. Профит! И в такой ситуации инитрам является наилучшим выбором.

Werenter ★★☆
() автор топика
Ответ на: комментарий от Werenter

Если у тебя линукс является единственной ОС то лучше его напрямую прописать в EFISTUB, и получаем систему без загрузчика вообще.

Ну вот в этот EFISTUB можно положить чтение необходимых файлов ядра через сервисы EFI.

И в такой ситуации инитрам является наилучшим выбором.

initramfs – это жуткий костыль приводящий ко многим проблемам и трудностям с администрированием. В нём могут лежать файлы не консистентные соответствующим файлам из ФС.

X512 ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.