Я часто сталкиваюсь с ситуациями, когда мне нужно запустить живой дистрибутив, чтобы что-то сделать (например, изменить размер основного загрузочного раздела). Обычный процесс для этого - найти USB-накопитель, который я не использую для чего-то другого, создать из него живой USB-накопитель, а затем загрузить его. Проблема часто в "найти USB, который я не использую для чего-то другого". Я недавно подумал, и мне было интересно, если есть способ загрузить живой дистрибутив без USB. Я знаю, что вы можете использовать опцию toram
kernal для полного запуска в ОЗУ. Это заставляет меня задуматься о том, можно ли использовать магию GRUB для загрузки системы непосредственно из ОЗУ без необходимости использования USB.
У меня есть menuentry в моем /etc/grub.d/40_custom
файл, через который я активируюсь sudo update-grub
загружаться в файл ISO Lubuntu.
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
menuentry "Lubuntu 18.04.1 Desktop iso" {
set isofile="/lubuntu-18.04.1-desktop-amd64.iso"
loopback loop (hd0,1)$isofile
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noprompt noeject
initrd (loop)/casper/initrd.lz
}
Это работает как ожидалось, но даже когда я продвинул его в RAM с параметром загрузки toram
(в конце строки 'Linux'), это не позволило бы мне размонтировать раздел, где файл ISO хранится, монтируется в /isodevice
.
Я храню файл ISO в корневом разделе моей установленной системы, таким образом, это означает, что я не могу изменить или восстановить его с инструментами, которые только работают, когда целевой раздел размонтирован.
Возможно хранить файл ISO в отдельном разделе, который не используется установленной операционной системой. Тем путем можно использовать живую систему, загруженную из файла ISO для редактирования раздела (разделов) установленной операционной системы.
Поэтому измените (hd0,1)
в
loopback loop (hd0,1)$isofile
указать на тот отдельный раздел.
Если существует раздел подкачки во внутреннем диске, и Вы хотите отредактировать его, необходимо подкачать его прочь
sudo swapoff /dev/sdxn
где x является буквой устройства, и n является числом раздела