Bootowanie ISO z GRUB


(lazlow87) #1

Znalazłem sposób na bootowanie plików ISO i podłączenie ich do GRUB poprzez grub-imageboot. Niestety lista podczas startu systemu się nie pojawia. Nie wiadać na niej Ubuntu, memtest ani ISO, które dodałem do folderu (boot/images). Co muszę zrobić aby lista pojawiała się przy starcie systemu?


(Domker) #2

Boot LiveUSB z Ubuntu, chroot i “update-grub”.

Tak BTW nie trzeba wykorzystywać grub-imageboot do bootowania z ISO. Wysarczy odpowieni wpis w menu grub.
Minus taki, że system się uruchomi z ISO, ale go nie zainstalujesz bootując w ten sposób z ISO.


(lazlow87) #3

A czy inne programy np. sardu z antywirusami i gparted odpalę?


#4

Odpalisz to, co jest na ISO. Tego typu “instalacja” linuksa jest praktycznie tym samym, co uruchomienie jakiegokolwiek live-iso. Praktycznie niczego nie doinstalujesz do takiego iso. Na podstawie jakiejś dystrybucji możesz sobie jednak przygotować własne iso z tym, czego potrzebujesz.


(lazlow87) #5

Jak najszybciej uruchomic chroot w ubuntu?


(pocolog) #6

mount -t proc /proc /mnt/nowysystem/proc
mount --rbind /dev /mnt/nowysystem/dev
mount --rbind /sys /mnt/nowysystem/sys
chroot /mnt/nowysystem /bin/bash

Oczywiście wszystkie polecenia jako root, a ścieżka do systemu który będziesz chrootował własna :slight_smile:


(Domker) #7

https://help.ubuntu.com/community/LiveCdRecovery


#8

Nieco - jedynie - OT: @Domker: Dlaczego “update-grub”, czyli # grub-mkconfig -o /boot/grub/grub.cfg ma być w tej sytuacji wydawane na schrootowanym systemie? Normalnie tego nie powinno wymagać.


(Domker) #9

@pavbaranov


(lazlow87) #10

pocolog twój sposób nie idzie przy /bin/bash. A po update-grub wyskakuje to:

Tworzenie pliku konfiguracyjnego grub…
Uwaga: Setting GRUB_TIMEOUT to a non-zero value when GRUB_HIDDEN_TIMEOUT is set is no longer supported.
Znaleziono obraz Linuksa: /boot/vmlinuz-4.4.0-64-generic
Znaleziono obraz initrd: /boot/initrd.img-4.4.0-64-generic
Znaleziono obraz Linuksa: /boot/vmlinuz-4.4.0-62-generic
Znaleziono obraz initrd: /boot/initrd.img-4.4.0-62-generic
Znaleziono obraz Linuksa: /boot/vmlinuz-4.4.0-31-generic
Znaleziono obraz initrd: /boot/initrd.img-4.4.0-31-generic
Znaleziono obraz Linuksa: /boot/vmlinuz-4.4.0-64-generic
Znaleziono obraz initrd: /boot/initrd.img-4.4.0-64-generic
Znaleziono obraz Linuksa: /boot/vmlinuz-4.4.0-62-generic
Znaleziono obraz initrd: /boot/initrd.img-4.4.0-62-generic
Znaleziono obraz Linuksa: /boot/vmlinuz-4.4.0-31-generic
Znaleziono obraz initrd: /boot/initrd.img-4.4.0-31-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Found memdisk: /boot/memdisk
Found iso image: /boot/images/sardu.iso
gotowe


(pocolog) #11

Jeśli nie znajduje /bin/bash to najprawdopodobniej znaczy, że wskazujesz nieprawidłowy katalog z linuksem do którego chcesz się zalogować. Nie wspomniałem o tym, ale oczywiście system (partycję na której jest system) który chcesz chrootować należy wcześniej zamontować :wink: Czyli mount /dev/sdXY /mnt/nowysystem. Gdzie XY to numer dysku i partycji. Jeśli w tamtym systemie jest osobno wydzielona partycja /boot /home /var czy jakakolwiek inna to też należy ją podmontować ręcznie w odpowiednich katalogach bo init nie startuje przy chroocie.

ps. Z tego co wypluł Ci grub wynika, że obraz sardu.iso został znaleziony i powinien trafić do configa, ale niech się wypowie ktoś kto lepiej zna gruba, bo ja się z nim nie lubię :stuck_out_tongue_winking_eye:


(Domker) #12

Czyli znalazło Ci wszystko, co chciałeś i utworzyło konfig.
Problem w tym, że jeżeli poprawnie chroot systemu nie zrobiłeś to zapisało Ci dla uruchomionego systemu konfig, który “wyparuje” jak wyłączysz zbootowany system z LiveUSB.


(lazlow87) #13

Wpisałem: mount /dev/sda ale nie idzie.


(pocolog) #14

/dev/sda to pierwszy dysk, ale potrzebujesz określić jeszcze numer partycji na której jest system w zależności jak go sformatowałeś. Pokaż parted -l polecenie oczywiście jako root


#15

Zerknij na to co napisał @pocolog wyżej:

W linuksie montujesz partycję, a nie urządzenie ma być zatem /dev/sda1…X - w miejscu 1…X dajesz ten numer partycji, którą nosi ta, którą chcesz podmontować (tu, Twoja partycja główna chrootowanego systemu). Numeru dowiesz się po wydaniu np. polecenia:
lsblk
(uwaga w niektórych systemach z sudo)
Dostaniesz coś takiego:
sudo lsblk
[sudo] hasło użytkownika pb:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 232,9G 0 disk
├─sda1 8:1 0 12G 0 part /
└─sda2 8:2 0 220,9G 0 part /home

Z czego wynika, że na /dev/sda1 jest partycja główna, a na /dev/sda2 partycja /home.
Oczywiście u Ciebie może to inaczej wyglądać.


(lazlow87) #16

Wykonałem to ale po restarcie xubuntu odmontowuje wszystko i staje w miejscu. Przy przymusowym restarcie nadal nic nie ma. Nawet robiłem ponownie i to samo.


(pocolog) #17

Pokaż jaki masz układ partycji to napiszemy Ci krok po kroku instrukcję co masz zrobić, skoro sobie nie radzisz.
edit.
Tzn Ja najwcześniej pewnie odpisze po weekendzie :cocktail: :wink: