tl; dr - Czy można uruchomić z pliku .iso, który znajduje się w niezaszyfrowanym woluminie logicznym lmv2? W jaki sposób?
Próbuję skonfigurować to w maszynie wirtualnej VirtualBox, zanim zrobię to naprawdę na moim laptopie. Mam następujące ustawienia:
- 4 partycje gpt
- gpt1 - bootowanie bios 202 ef02
- gpt2 - 5G nieszyfrowane non-lvm, dla różnych danych, plików ISO itp.
- gpt3 - niezaszyfrowany lvm 5G, dla / boot, ISO itp.
- gpt4 - pozostały, lvm, zaszyfrowany przy pomocy dm-crypt / luks, dla root, swap, home itp.
- w gpt2 mam kopie aktualnych iso Arch i Xubuntu
- w gpt3 mam lvm2 lv z tymi samymi kopiami tych samych ISO
Mam następujące działania:
- w gpt4, działające instalacje Arch i Xubuntu (i chciałbym dodać inne dystrybucje w innych woluminach logicznych w pewnym momencie)
- grub2 zainstalowany z Arch na / dev / sda
- za pomocą polecenia configfile grub2, można przełączać i uruchamiać z menu grub2 obu dystrybucji
- można uruchomić ISO z menu GRUB z gpt2 innego niż lvm
To, co chciałbym zrobić, to bootowanie z ISO w gpt3 lvm (i ostatecznie nawet nie mam partycji gpt2 innej niż lvm).
Mój wpis dotyczący gruba to:
menuentry "Xubuntu ISO" {
set isofile="/xubuntu-12.04.1-desktop-amd64.iso"
# from non-lvm
loopback loop (hd0,gpt2)$isofile
# from lvm
#loopback loop (vgboot-iso)$isofile
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noprompt noeject
initrd (loop)/casper/initrd.lz
}
2 linie sprzężenia zwrotnego wskazują na 2 różne kopie tego samego ISO. Sprawdziłem w wierszu poleceń grub, że działają obie linie sprzężenia zwrotnego.
Podczas uruchamiania z ISO na partycji innej niż lvm wszystko działa poprawnie.
Podczas uruchamiania z ISO na partycji lvm, rozruch rozpoczyna się i ostatecznie pojawia się ten błąd:
(initramfs) /scripts/casper-premount/20iso_scan: line 46: can't open /dev/sr0: No medium found
Dla wpisu łuku:
menuentry "Arch ISO" {
set isofile="/archlinux-2012.09.07-dual.iso"
loopback loop (hd0,gpt2)$isofile
#loopback loop (vgboot-iso)$isofile
linux (loop)/arch/boot/x86_64/vmlinuz archisolabel=ARCH_201209 img_dev=/dev/sda2 img_loop=$isofile earlymodules=loop
initrd (loop)/arch/boot/x86_64/archiso.img
}
bootowanie z gpt2 iso działa, ale nie wiem, co zmienić „/ dev / sda2” na boot lvm.
EDYCJA: Czy można to zrobić? W przypadku dowolnego oficjalnego pliku .iso dystrybucji Linux-a? Fedora? Debian? openSUSE? CentOS?
Czy to jest niemożliwe? Czy jest to coś, czego nikt wcześniej nie próbował wypróbować?
EDIT2: Moja nagroda już dawno wygasła i po 9 miesiącach zakładam, że nie jest to możliwe w przypadku żadnej dystrybucji Linuksa. Pozostawię pytanie otwarte, ale wątpię, czy w najbliższej przyszłości będzie działające rozwiązanie.
search
jest jednym z woluminu logicznego, który zawiera plik ISO, prawda? Aby go zdobyć, musisz zrobićsudo blkid
.Zainspirowany tym prostym rozwiązaniem dla Ubuntu , użyłem następującego, który działa do ładowania ISO KDE Fedory 27 i ISO Ubuntu 17.10.
Właśnie dodałem następujące wiersze w pliku
/etc/grub.d/40_custom
Wyjaśnienie
set iso_path
określa ścieżkę, w której plik ISO można znaleźć na woluminie logicznym. Kiedy uruchamiam mój system, leży w nim/home/erik/Downloads/transmission/Fedora-KDE-Live-x86_64-27/Fedora-KDE-Live-x86_64-27-1.6.iso"
, ale/home
jest zamontowanym woluminem logicznym, więc zostawiam to i zaczynam ścieżkę/erik/Downloads/…
Linia rozpoczynająca się od
search
ma na końcu dziwną zmienną alfanumeryczną (tak zwany UUID)6340
. Mam ten numer z komendyco dało mi, wraz z innymi, następującą linię
Kolejną ważną rzeczą, jeśli chcesz uruchomić inne pliki ISO, są linie zaczynające się od
linux
iinitrd
. Mam je, otwierając plik ISO za pomocąfile-roller
(GUI do wypakowywania skompresowanych archiwów) lubmc
(menedżer plików konsoli).Fedora i podobne: tam idziesz do katalogu
/isolinux
, w którym znajdziesz plik o nazwieisolinux.cfg
. Tam znalazłem kilka linii zaczynających się odlabel
, a pod nimi kolejne ważne liniektórego użyjesz do wypełnienia dwóch ostatnich wierszy mojego grub2
menuentry
.Ubuntu i podobne: tam idziesz do katalogu
/boot/grub
, w którym znajdziesz plik o nazwiegrub.cfg
. Tutaj znajdziesz kilka linii zaczynających się odmenuentry
, a pod nimi kolejne ważne liniektóre możesz po prostu skopiować.
źródło
Myślę, że nie jest to możliwe w przypadku oficjalnego pliku ISO większości dystrybucji.
Występujący błąd:
oznacza, że podczas uruchamiania system na żywo, który uruchamiasz, szuka dysku CD / DVD i nie znajduje żadnego.
Live CD nie są skonfigurowane do wyszukiwania źródła ISO na LVM; możesz zmodyfikować skrypty rozruchowe obrazu, aby to zrobić, ale nie sądzę, aby jakikolwiek obecny oficjalny plik .iso distro to zrobił. Możesz spróbować skontaktować się z twórcami swojej ulubionej dystrybucji, aby mieć to zintegrowane?
źródło
Możesz spróbować:
Dodaj to na początku menu:
Następnie określ swoją partycję LVM za pomocą:
Twój wpis ISO Xubuntu wyglądałby tak:
W razie potrzeby wprowadź poprawki.
To powinno sprawić, że GRUB rozpozna wolumin lvm2, umożliwiając odczytanie w nim pliku ISO. Prawdopodobnie ISO nadal nie zostanie znalezione ...
źródło
Tylko jeden punkt:
ISO podczas uruchamiania musi zamontować ISO, więc musi wiedzieć, jak go znaleźć.
Grub2 może zobaczyć ISO za pomocą komend insmod ..., ale nie robi to nic innego, jak pozwolić Grub2 odczytać wewnątrz ISO, zamontować go w pętli itp., Ale jak tylko Linux wewnątrz ISO uruchomi LVM / LUKS / loop / etc nie ma (nie jest zamontowany), skrypty rozruchowe wewnątrz ISO muszą wiedzieć, jak zamontować tę pętlę LVM / LUKS /; więc jeśli ten Linux nie jest do tego przygotowany, nie będzie można go uruchomić.
Próbkuj bez LVM, LUKS itp. ... jeśli normalny Linux LiveCD ISO nie jest zaprojektowany do wyszukiwania i montowania pętli do pliku .iso podczas uruchamiania, nigdy nie będzie możliwe uruchomienie go z Grub2 (z .iso jako plik).
W takich przypadkach potrzebujesz sprzętowego emulatora CD / DVD (na prawdziwym sprzęcie) lub po prostu zamontuj .iso na wirtualnej jednostce CD / DVD maszyny wirtualnej.
Inną opcją jest oczywiście „edycja” takiego ISO w celu włączenia podczas uruchamiania niektórych skryptów do wyszukiwania i montowania LVM / LUKS / itp.
źródło