Я ломал голову, пытаясь понять, как лучше это сделать. Это может показаться немного запутанным, поэтому позвольте мне объяснить"почему"первый.
У меня уже есть Linux Live USB-накопитель (на мощном USB-накопителе Samsung на 256 ГБ, который работает так же быстро, как SSD, работает отлично!). Но я хочу создать другой(ие) Linux USB-накопитель(и) только для выполнения основных массовых задач, таких как восстановление в облаке или запуск одного и того же сценария обслуживания на разных ноутбуках/настольных компьютерах одновременно. Некоторые из них находятся в разных состояниях, с разными ОС, некоторые даже не имеют сетевого подключения... Но вставить Linux USB с нужными мне файлами и стандартизированной средой запуска/восстановления скриптов — это идеально.
Проблема в том, что у меня, очевидно, ограниченное количество USB-накопителей. Я хочу иметь возможность загрузить ОС и сохранить все в оперативной памяти, а затем вытащить USB-накопитель, и ничего странного не произойдет, он просто продолжит работать. Ну, угадайте, что уже делает это из коробки? Установщик Ubuntu Live 22.04 в режиме «Попробовать Ubuntu». Это также имеет преимущество в том, что занимает гораздо меньше места, чем стандартная установка 22.04, что также означает меньшее использование оперативной памяти, поскольку диск полностью хранится в оперативной памяти. По моим наблюдениям, он занимает всего 1,6 ГБ.
Обновлять:Удалив maybe-ubiquity
из grub, я смог заставить систему загружаться напрямую в Live Ubuntu, а не в установщик. Спасибо @Raffa за помощь с этим. Во-вторых, я смог настроить непостоянную файловую систему (в /casper/filesystem.squashfs
), используя unsquashfs
инструмент, загрузив VM, изменив все и переделав ее. Однако это очень неудобно, особенно если вы хотите сделать только небольшую настройку.
Также я могу подтвердить, что даже с опцией, toram
добавленной в grub, постоянный раздел (который, кстати, вы получаете, просто назвав раздел ext4 «записываемым» и загрузившись с этой persistent
опцией) НЕ кэшируется. Система немедленно зависнет и в конечном итоге зависнет/упадет при извлечении USB. Однако в непостоянном режиме все теперь хорошо и стабильно, когда USB извлекается. Я даже написал скрипт, который безопасно отмонтирует USB при загрузке, так что вы можете удалить его, как только увидите рабочий стол.
Одна из идей, которая у меня есть, заключается в том, что я мог бы автоматизировать процесс распаковки и повторной распаковки, так что вы можете буквально загрузиться в неперсистентном режиме, как обычно, но при запуске скрипта содержимое ОЗУ будет записано обратно в filesystem.squashfs. Это влечет за собой риск потери данных, если система неожиданно выключится, но, учитывая, что я буду вносить изменения только время от времени, и в большинстве случаев использую только неперсистентный режим, это имеет смысл для моего варианта использования.