Поиск по сайту:

Ramroot — запускайте Arch Linux полностью из оперативной памяти!

Как вы уже знаете, каждый день в репозиторий GitHub добавляются сотни новых дополнений. Но многие хорошие проекты остаются незамеченными и никогда не получают того внимания, которого заслуживают. Сегодня я наткнулся на классный проект под названием Ramroot. Используя Ramroot, мы можем запускать Arch Linux полностью из оперативной памяти! Да, вы правильно прочитали.

Ramroot загружает всю корневую файловую систему в ОЗУ при загрузке системы. Он специально разработан для Arch Linux. Я попробовал это в Ubuntu, но это не сработало. Я надеюсь, что разработчик сможет работать и с другими дистрибутивами Linux.

Запустите Arch Linux из оперативной памяти с помощью Ramroot

Ramroot доступен в AUR, поэтому его можно установить с помощью любой вспомогательной программы AUR, например Paru или Yay.

Paru -S ramroot

Или,

yay -S ramroot

Затем включите Ramroot с помощью команды:

ramroot enable

Пример вывода:

:: Detected root UUID: 6517af02-68e9-484e-9dae-f0ed61822ad3
:: No /boot UUID detected.
:: zram added to mkinitcpio.conf MODULES
:: ext4 added to mkinitcpio.conf MODULES
:: vfat added to mkinitcpio.conf MODULES
:: ramroot added to mkinitcpio.conf HOOKS
:: Enabling ramroot...
[sudo] password for sk: 
==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'default'
-> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux.img
==> Starting build: 4.17.6-1-ARCH
-> Running build hook: [base]
-> Running build hook: [udev]
-> Running build hook: [ramroot]
-> Running build hook: [autodetect]
-> Running build hook: [modconf]
-> Running build hook: [block]
-> Running build hook: [filesystems]
-> Running build hook: [keyboard]
-> Running build hook: [fsck]
==> Generating module dependencies
==> Creating gzip-compressed initcpio image: /boot/initramfs-linux.img
==> Image generation successful
==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'fallback'
-> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux-fallback.img -S autodetect
==> Starting build: 4.17.6-1-ARCH
-> Running build hook: [base]
-> Running build hook: [udev]
-> Running build hook: [ramroot]
-> Running build hook: [modconf]
-> Running build hook: [block]
==> WARNING: Possibly missing firmware for module: wd719x
==> WARNING: Possibly missing firmware for module: aic94xx
-> Running build hook: [filesystems]
-> Running build hook: [keyboard]
-> Running build hook: [fsck]
==> Generating module dependencies
==> Creating gzip-compressed initcpio image: /boot/initramfs-linux-fallback.img
==> Image generation successful
:: ramroot enabled.

Если по какой-либо причине это не работает, возьмите двоичный файл Ramroot из репозитория GitHub и запустите его, как описано ниже.

Git клонирует репозиторий Ramroot с помощью команды:

$ git clone https://github.com/arcmags/ramroot.git
Cloning into 'ramroot'...
remote: Counting objects: 94, done.
remote: Compressing objects: 100% (52/52), done.
remote: Total 94 (delta 41), reused 82 (delta 32), pack-reused 0
Unpacking objects: 100% (94/94), done.

Приведенная выше команда создаст папку с именем «ramroot» в текущем рабочем каталоге и сохранит в ней все содержимое проекта Ramroot.

Затем перейдите в каталог Ramroot bin:

cd ramroot/bin/

Сделайте следующие файлы исполняемыми:

chmod +x ramroot-build
chmod +x ramroot-enable

Наконец, выполните следующую команду, чтобы включить Ramroot.

./ramroot-enable

При появлении запроса введите свой пароль sudo или root.

Теперь перезагрузите систему. В процессе загрузки вам будет предложено загрузить файловую систему в ОЗУ. Введите Да, чтобы продолжить.

Загрузить корневую файловую систему в ОЗУ

Обратите внимание, что по умолчанию этот запрос (да/нет) имеет значение да с тайм-аутом в 15 секунд, если обнаружено 4G или более оперативной памяти. Поскольку у меня 2 ГБ ОЗУ, мне пришлось ввести "Y", чтобы продолжить.

Подождите некоторое время, чтобы завершить процесс загрузки. Загрузка всей корневой файловой системы в оперативную память займет несколько минут. Убедитесь, что в вашей системе установлено достаточно оперативной памяти.

Если вы хотите добиться более быстрой синхронизации ОЗУ, постарайтесь сохранить чистую и урезанную систему. Удалите старые и ненужные пакеты и поддерживайте чистоту папки кэша пакетов.

Обновление:

Если вы используете самую последнюю версию Ramroot, объем установленной оперативной памяти должен быть как минимум на 500 МБ больше размера корневой файловой системы. Если оперативной памяти как минимум на 500 МБ больше, чем размер файловой системы, пользователю будет предложено загрузить корневую файловую систему в ОЗУ. Если размер корневой файловой системы меньше установленной памяти, последняя версия Ramroot не будет загружать корневую файловую систему в вашу оперативную память. Он даже не спросит вас, следует ли загружать файловую систему в ОЗУ или нет. Файловая система будет автоматически смонтирована на ваш локальный диск, и Arch Linux загрузится нормально.

Как только корневая файловая система будет загружена в оперативную память, вы попадете в приглашение rootfs. Обратите внимание, что после перезагрузки ничего не сохранится. Потому что наш Arch Linux полностью загружается из оперативной памяти, а не с локального диска.

Корневая файловая система загружена в ОЗУ

Отобразить справку Ramroot

Чтобы отобразить раздел справки Ramroot, запустите:

ramroot --help

Пример вывода:

NAME
ramroot - load root (and /boot) filesystem entirely to RAM during boot

SYNOPSIS
ramroot <ACTION> [OPTIONS]

ACTIONS
disable
Remove ramroot from /etc/mkinitcpio.conf HOOKS.
Remove ext4, vfat, and zram from /etc/mkinitcpio.conf MODULES.
Rebuild linux cpio boot image.

enable
Rebuild build and runtime hooks in /usr/lib/initcpio.
Add ramroot to /etc/mkinitcpio.conf HOOKS.
Add ext4, vfat, and zram to /etc/mkinitcpio.conf MODULES.
Rebuild linux cpio boot image.

remove
Disable ramroot.
Remove build and runtime hooks from /usr/lib/initcpio.

status
Print ramroot and root filesystem status to screen.
Return exit status 0 if enabled and currently loaded to RAM.
Return exit status 1 if enabled and not loaded RAM.
Return exit status 2 if disabled.

OPTIONS
-b, --boot <UUID>
Specify /boot partition UUID to use when building hooks.

-D, --dryrun
Execute ACTION without making any changes.

-F, --fstab
Mount all other partitions in /etc/fstab normally.

-H, --help
Display help text and exit.

-K, --keep
Keep copies of new build and runtime hooks in ~/.cache/ramroot.

-M, --message
Print 'Arch on RAM' message at tty login by using custom /etc/issue.

-N, --no
Change startup prompt default to not load filesystem to RAM.

-r, --root <UUID>
Specify root partition UUID to use when building hooks.

-t, --timeout <SECONDS>
Set RAM boot prompt timeout (default=15).

Удалить Ramroot

Перезагрузите вашу систему и введите "n", когда она попросит загрузить файловую систему в ОЗУ для нормального входа в вашу систему Arch Linux. Перейдите в папку ramroot/bin и сделайте следующие файлы исполняемыми.

cd ramroot/bin/
chmod +x ramroot-disable
chmod +x ramroot-remove

Наконец, удалите Ramroot из вашей системы Arch Linux с помощью команд:

./ramroot-disable
./ramroot-remove

Если вы установили Ramroot из AUR, удалите его с помощью команд:

ramroot disable
ramroot remove

И, наконец, удалите пакет Ramroot:

sudo pacman -Rns ramroot

Заключение

Ramroot может быть полезен тем, кто хочет провести тестирование на своем компьютере Arch Linux. Кроме того, если вам нужен частный сеанс для изучения команд Linux, Ramroot определенно вам поможет. Попробуйте и не забудьте поделиться своими мыслями об этом проекте в разделе комментариев ниже.

Ресурс:

  • Репозиторий Ramroot GitHub

Статьи по данной тематике