ubuntuusers.de

(X)Ubuntu-Installation auf USB-Stick, der sowohl in BIOS und UEFI startet

Status: Gelöst | Ubuntu-Version: Xubuntu 18.04 (Bionic Beaver)
Antworten |

Unix-Lover

Avatar von Unix-Lover

Anmeldungsdatum:
15. November 2011

Beiträge: 79

Hallo zusammen,

ich habe schon mal eine ähnliche Frage in folgendem Thread erstellt, in dem es darum ging, ein persistentes Ubuntu Live-System auf einem USB-Stick zu bringen:

https://forum.ubuntuusers.de/topic/xubuntu-live-usb-stick-mit-ntfs/

Das hat dank der dort erhaltenen Hilfe sehr gut geklappt und ich konnte bislang mein persistentes Live-System an allen PCs, die ich ausprobiert hatte, starten.

Nun möchte ich ein Xubuntu vollständig auf einem USB-Stick installieren, den ich sowohl in BIOS und UEFI starten kann. Ich habe Xubuntu testweise auf einen Stick installiert. Dabei habe ich die Installation ganz normal gestartet und statt der internen Platte den USB-Stick angegeben. Am Ende der Installation habe ich darauf geachtet, GRUB auf den USB-Stick und nicht auf die interne Platte zu installieren.

Das hat auch ganz gut geklappt und ich kann das Xubuntu auf dem Stick starten. Das Problem ist allerdings, dass ich nur im BIOS starten kann. In einem reinen UEFI wird der Stick im Bootmenü nicht erkannt.

Das ist an sich zwar nicht falsch, weil die Installation auch im BIOS-Modus war, aber was kann ich tun, um das USB-System auch in UEFI booten zu können?

Vielleicht noch eine Info: Die Partitionen auf dem Stick sind zum einen eine separate Boot-Partition (um auch ein verschlüsseltes System auf dem Stick zu ermöglichen), sowie eine Swap- und auch eine Root-Partition.

Vielen Dank schon mal für eure Hilfe.

Viele Grüße

Unix Lover

tomtomtom Team-Icon

Supporter
Avatar von tomtomtom

Anmeldungsdatum:
22. August 2008

Beiträge: 55507

Wohnort: Berlin

Unix-Lover schrieb:

Nun möchte ich ein Xubuntu vollständig auf einem USB-Stick installieren, den ich sowohl in BIOS und UEFI starten kann.

Wird so wohl eher nicht funktionieren. Jedoch sollte jedes mit UEFI ausgelieferte System noch in der Lage sein, ein im BIOS-Modus installiertes System zu starten (so man den entsprechenden Legacy-Modus im UEFI einschaltet).

Das ist an sich zwar nicht falsch, weil die Installation auch im BIOS-Modus war, aber was kann ich tun, um das USB-System auch in UEFI booten zu können?

Dafür musst du die Installation auch im UEFI-Modus starten. Klappt dann natürlich auch nur an dem Rechner, auf dem das installiert wird.

Lidux

Anmeldungsdatum:
18. April 2007

Beiträge: 16774

Hallo

Doch das geht ...... nur mal im WIKI suchen und bei black_tencate vorbeisehen.

Gruss Lidux

black_tencate

Avatar von black_tencate

Anmeldungsdatum:
27. März 2007

Beiträge: 11324

Hej Unix-Lover,

Unix-Lover schrieb:

...aber was kann ich tun, um das USB-System auch in UEFI booten zu können?

wie Lidux schon sagte, es gibt für genau die anwendung hier eine Wikiseite, in der beschrieben ist, wie man einen USB Stick einrichtete, damit der bootet, egal, ob EFI oder legacy im system eingestellt ist.

In Deinem Fall müßtest Du eine esp (Partition) auf dem Stick hinzufügen, und dort 2x grub installieren. Für den legacy grub wählst Du /dev/sdx, x steht für den USB Stick.

Dein vorhandenes Linux bootest du, indem Du in jedem der neu anzulegenden grub.cfg (für EFI und für legacy) einen menuentry anlegst, der die SymLinks der Installation aufruft. Oder die startest das grub.cfg-file dieser Installation.

Gruß black tencate

Unix-Lover

(Themenstarter)
Avatar von Unix-Lover

Anmeldungsdatum:
15. November 2011

Beiträge: 79

Hallo zusammen,

ah, da bin ich schon wieder bei diesem Wiki-Eintrag gelandet. Gut, dass ich da schon ein wenig Vorwissen habe. ^^

Danke für eure Hinweise, insbesondere dir black_tencate. Ich habe die esp-Partition erstellt, darauf grub für EFI und legacy installiert und die grub.cfg von der Installation übernommen und in die esp kopiert. Den Stick kann ich nun sowohl in einem UEFI als auch im BIOS Booten.

Es gibt da aber leider noch ein Problem:

Die Installation auf dem Stick habe ich auf einem Rechner mit nur einer Festplatte durchgeführt, der Stick hatte dadurch das Verzeichnis /dev/sdb. Nun habe ich diesen Stick auf einem anderen Rechner gebootet, in dem zwei Festplatten verbaut sind. In diesem Rechner wurde er als /dev/sdc erkannt und dadurch konnte ubuntu nicht geladen werden, weil in der grub.cfg „root=/dev/sdb...“ stand.

Lösen konnte ich das, indem ich in der grub.cfg überall „sdb“ mit „sdc“ ersetzt habe. Das bedeutet aber, dass ich den Stick nur auf Rechnern mit zwei verbauten Festplatten zum laufen kriege.

Kann man diese Abhängigkeit von der Anzahl der Platten noch in der grub.cfg lösen, oder muss ich den anderen weg mit den SymLinks gehen? Wenn ja, wie macht man das?

Viele Grüße

Unix-Lover

alterpinguin

Anmeldungsdatum:
24. Mai 2014

Beiträge: 786

Da musst Du mehr nachlesen - auch die grub-Anleitung -

Das hier ist jetzt nicht die Lösung für Dein spezielles Problem, aber so geht es bei mir indem ich NICHT die Laufwerksbuchstaben verwende. Es gibt für die Laufwerke, wie auch für die Partitionen und Dateisysteme, IDs. In dem folgenden Beispiel nutze ich die Dateisystem-ID um von der 4. Partition auf dem Datenträger eine zusätzliche Hauptkonfiguration für grub nachzuladen.

menuentry ".. use search uuid and source ..." {
# search.fs_uuid  UUID  Variable  Hint
        search.fs_uuid 36A2-8548 cfg (hd0,gpt4)
        source ($cfg)/grub.cfg
        echo " ... config per search.fs_uuid added"
}

das hab ich gemacht, damit ich nicht sowohl beim grub.cfg auf der UEFI-ESP-Partition, als auch auf der für den BIOS-Boot mit grub, jedesmal bei Änderungen auf 2 Partitionen die Einträge anpassen muss.

Für grub scheint immer zu gelten, dass der Bootdatenträger die "hd0" ist (grub nummeriert die Datenträger .. erinnert an bsd.. dieses Teufelchen).

Mein Eintrag dort für den persistent-Modus mit ein paar Optionen mit einer extra Partition lautet dort:

menuentry "persistent lubuntu-18.04.1-desktop-amd64 live " {
        echo " .... loopback von iso-Datei .. dauert etwas.."
        set root=(hd0,gpt4)
        loopback loop (hd0,4)/lubuntu-18.04.1-desktop-amd64.iso
        linux (loop)/casper/vmlinuz boot=casper  ramdisk_size=2097152 root=/dev/ram rw locale=de_DE bootkbd=de console-setup/layoutcode=de iso-scan/filename=/lubuntu-18.04.1-desktop-amd64.iso persistent noeject
        initrd (loop)/casper/initrd.lz
}

wie erkennbar ist, ist der USB-Stick im gpt-Modus partitioniert. Würde es sich nicht um ein Live-System, sondern um eine Festinstallation handeln, dann gilt auch da, dass der Aufruf für "linux .../vmlinuz" mit der korrekten UUID vorgenommen werden muss, damit die root-Partition gefunden wird.

edit: das Einbinden per "source .." muss natürlich nicht in einem extra Menüpunkt stehen, aber so hab ich das erstmal getestet. Ohne den Menüpunkt und mit den Befehlen würde der Dateiinhalt direkt eingebunden und ich hatte auch "source" mit Angabe der Partitionsnummer probiert, bin aber dann bei der ID geblieben.

Unix-Lover

(Themenstarter)
Avatar von Unix-Lover

Anmeldungsdatum:
15. November 2011

Beiträge: 79

alterpinguin schrieb:

Da musst Du mehr nachlesen - auch die grub-Anleitung -

Danke für den Hinweis, aber siehst du in der Anleitung irgendeinen Punkt, der auf dieses Problem eingeht?

Ich habe in der grub.cfg der Installation nachgeschaut und die UUID ist dort bereits dokumentiert. Um mein Problem etwas klarer zu machen, zeige ich euch die grub.cfg:

#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
  set have_grubenv=true
  load_env
fi
if [ "${next_entry}" ] ; then
   set default="${next_entry}"
   set next_entry=
   save_env next_entry
   set boot_once=true
else
   set default="0"
fi

if [ x"${feature_menuentry_id}" = xy ]; then
  menuentry_id_option="--id"
else
  menuentry_id_option=""
fi

export menuentry_id_option

if [ "${prev_saved_entry}" ]; then
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
  fi
}
function load_video {
  if [ x$feature_all_video_module = xy ]; then
    insmod all_video
  else
    insmod efi_gop
    insmod efi_uga
    insmod ieee1275_fb
    insmod vbe
    insmod vga
    insmod video_bochs
    insmod video_cirrus
  fi
}

if [ x$feature_default_font_path = xy ] ; then
   font=unicode
else
insmod part_msdos
insmod ext2
set root='hd1,msdos4'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd1,msdos4 --hint-efi=hd1,msdos4 --hint-baremetal=ahci1,msdos4  71af615e-9da3-4097-8450-a208b583f9bd
else
  search --no-floppy --fs-uuid --set=root 71af615e-9da3-4097-8450-a208b583f9bd
fi
    font="/usr/share/grub/unicode.pf2"
fi

if loadfont $font ; then
  set gfxmode=auto
  load_video
  insmod gfxterm
  set locale_dir=$prefix/locale
  set lang=de_DE
  insmod gettext
fi
terminal_output gfxterm
if [ "${recordfail}" = 1 ] ; then
  set timeout=30
else
  if [ x$feature_timeout_style = xy ] ; then
    set timeout_style=menu
    set timeout=5
  # Fallback normal timeout code in case the timeout_style feature is
  # unavailable.
  else
    set timeout=5
  fi
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
insmod part_msdos
insmod ext2
set root='hd1,msdos4'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd1,msdos4 --hint-efi=hd1,msdos4 --hint-baremetal=ahci1,msdos4  71af615e-9da3-4097-8450-a208b583f9bd
else
  search --no-floppy --fs-uuid --set=root 71af615e-9da3-4097-8450-a208b583f9bd
fi
insmod png
if background_image /usr/share/desktop-base/softwaves-theme/grub/grub-4x3.png; then
  set color_normal=white/black
  set color_highlight=black/white
else
  set menu_color_normal=cyan/blue
  set menu_color_highlight=white/blue
fi
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
function gfxmode {
	set gfxpayload="${1}"
}
set linux_gfx_mode=
export linux_gfx_mode
menuentry 'Debian GNU/Linux' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-71af615e-9da3-4097-8450-a208b583f9bd' {
	load_video
	insmod gzio
	if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
	insmod part_msdos
	insmod ext2
	set root='hd1,msdos4'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd1,msdos4 --hint-efi=hd1,msdos4 --hint-baremetal=ahci1,msdos4  71af615e-9da3-4097-8450-a208b583f9bd
	else
	  search --no-floppy --fs-uuid --set=root 71af615e-9da3-4097-8450-a208b583f9bd
	fi
	echo	'Linux 4.9.0-8-amd64 wird geladen …'
	linux	/boot/vmlinuz-4.9.0-8-amd64 root=/dev/sdc4 ro  quiet
	echo	'Initiale Ramdisk wird geladen …'
	initrd	/boot/initrd.img-4.9.0-8-amd64
}
submenu 'Erweiterte Optionen für Debian GNU/Linux' $menuentry_id_option 'gnulinux-advanced-71af615e-9da3-4097-8450-a208b583f9bd' {
	menuentry 'Debian GNU/Linux, mit Linux 4.9.0-8-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.9.0-8-amd64-advanced-71af615e-9da3-4097-8450-a208b583f9bd' {
		load_video
		insmod gzio
		if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
		insmod part_msdos
		insmod ext2
		set root='hd1,msdos4'
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root --hint-bios=hd1,msdos4 --hint-efi=hd1,msdos4 --hint-baremetal=ahci1,msdos4  71af615e-9da3-4097-8450-a208b583f9bd
		else
		  search --no-floppy --fs-uuid --set=root 71af615e-9da3-4097-8450-a208b583f9bd
		fi
		echo	'Linux 4.9.0-8-amd64 wird geladen …'
		linux	/boot/vmlinuz-4.9.0-8-amd64 root=/dev/sdc4 ro  quiet
		echo	'Initiale Ramdisk wird geladen …'
		initrd	/boot/initrd.img-4.9.0-8-amd64
	}
	menuentry 'Debian GNU/Linux, with Linux 4.9.0-8-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.9.0-8-amd64-recovery-71af615e-9da3-4097-8450-a208b583f9bd' {
		load_video
		insmod gzio
		if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
		insmod part_msdos
		insmod ext2
		set root='hd1,msdos4'
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root --hint-bios=hd1,msdos4 --hint-efi=hd1,msdos4 --hint-baremetal=ahci1,msdos4  71af615e-9da3-4097-8450-a208b583f9bd
		else
		  search --no-floppy --fs-uuid --set=root 71af615e-9da3-4097-8450-a208b583f9bd
		fi
		echo	'Linux 4.9.0-8-amd64 wird geladen …'
		linux	/boot/vmlinuz-4.9.0-8-amd64 root=/dev/sdc4 ro single 
		echo	'Initiale Ramdisk wird geladen …'
		initrd	/boot/initrd.img-4.9.0-8-amd64
	}
}

### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###

### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/30_uefi-firmware ###
menuentry 'System setup' $menuentry_id_option 'uefi-firmware' {
	fwsetup
}
### END /etc/grub.d/30_uefi-firmware ###

### BEGIN /etc/grub.d/40_custom ###
# 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.
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f  ${config_directory}/custom.cfg ]; then
  source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###

Die markierten Stellen sind diejenigen, an denen ich "sdb" in "sdc" geändert habe, damit die Installation gestartet werden kann.

@ alterpinguin:

Ich sehe leider nicht, wie ich deine Hinweise bei dieser grub.cfg umsetzen kann.

Viele Grüße

Unix-Lover

black_tencate

Avatar von black_tencate

Anmeldungsdatum:
27. März 2007

Beiträge: 11324

Hej Unix-Lover,

das ist dann wohl Pech, wenn Debian nicht wie Ubuntu an der Stelle die entsprechende UUID verwendet.

...
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-425a672c-ca45-4e7a-8a63-faac759bdf22' {
	recordfail
	load_video
	gfxmode $linux_gfx_mode
	insmod gzio
	if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
	insmod part_msdos
	insmod ext2
	set root='hd1,msdos8'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd1,msdos8 --hint-efi=hd1,msdos8 --hint-baremetal=ahci1,msdos8  425a672c-ca45-4e7a-8a63-faac759bdf22
	else
	  search --no-floppy --fs-uuid --set=root 425a672c-ca45-4e7a-8a63-faac759bdf22
	fi
        linux	/boot/vmlinuz-4.15.0-47-generic root=UUID=425a672c-ca45-4e7a-8a63-faac759bdf22 ro  quiet splash $vt_handoff
	initrd	/boot/initrd.img-4.15.0-47-generic
}
...

dann hast Du bei wechselden PC/Anzahl der angeschlossenen devices wohl nur die Möglichkeit, über die SymLinks zu operieren, da bist du dein eigener Herr. Falls Du dann doch mal z.B. einen anderen kernel lagen können willst, mußt Du halt das cfg-file laden und editieren.

Oder, Du richtest einfach einen entsprechenden menuentry (mit UUID) unter 40_custom ein und benutzt den.

Gruß black tencate

Unix-Lover

(Themenstarter)
Avatar von Unix-Lover

Anmeldungsdatum:
15. November 2011

Beiträge: 79

Hallo black_tencate,

black_tencate schrieb:

das ist dann wohl Pech, wenn Debian nicht wie Ubuntu an der Stelle die entsprechende UUID verwendet.

        linux	/boot/vmlinuz-4.15.0-47-generic root=UUID=425a672c-ca45-4e7a-8a63-faac759bdf22 ro  quiet splash $vt_handoff

Das war der Knackpunkt! Nachdem ich die grub.cfg geändert habe, indem ich an entsprechender Stelle so wie hier die UUID angebe, konnte ich das System wieder starten.

Es hätte mich schwer gewundert, wenn das bei Debian sehr viel anders wäre, sonst hätte ich die Frage hier gar nicht erst gestellt.

Eine kleine Info, die für den ein oder anderen vielleicht interessant ist:

Die Installation auf dem Stick, von der wir hier sprachen, war noch nicht verschlüsselt. Ich habe eine erneute Installation durchgeführt, diesmal mit Verschlüsselung. Bei verschlüsselten Systempartitionen werden diese beim Laden des Systems auch direkt gefunden, unabhängig von der Anzahl der Devices. In diesem Fall musste ich nicht nicht die UUID in die grub.cfg eintragen. Ich hatte es aber testweise dann doch gemacht und das System konnte nicht geladen werden.

Warum das so ist, weiß ich nicht, vielleicht weiß das ja jemand hier im Forum. Als Fazit merke ich mir jedenfalls, dass man bei der unverschlüsselten Installation die UUID in die grub.cfg eintragen muss und bei einer verschlüsselten Installation nicht. (Anmerkung: Dieses Fazit ist wichtig für Debian, für Ubuntu ist es offenbar obsolet.)

Ich markiere den Thread als gelöst und bedanke mich vielmals für diese gute Hilfe. ☺

Viele Grüße

Unix-Lover

black_tencate

Avatar von black_tencate

Anmeldungsdatum:
27. März 2007

Beiträge: 11324

Hej Unix-Lover,

Unix-Lover schrieb:

...Nachdem ich die grub.cfg geändert habe, indem ich an entsprechender Stelle so wie hier die UUID angebe, konnte ich das System wieder starten.

leider wird Dir aber beim nächsten update-grub das Ganze wieder in den ursprünglichen Zustand (zurück)geändert werden. Kann nur an den Skripten zur Grubsteuerung bei Debian liegen.

Gruß black tencate

Unix-Lover

(Themenstarter)
Avatar von Unix-Lover

Anmeldungsdatum:
15. November 2011

Beiträge: 79

Hallo black_tencate,

der Befehl update-grub liefert bei mir im Terminal die folgende Meldung:

/usr/sbin/grub-mkconfig: 253: /usr/sbin/grub-mkconfig: cannot create /boot/grub/grub.cfg.new: Directory nonexistent

Auf der esp-Partition habe ich grub für efi und legacy installiert und die grub.cfg der Installation in diese Partition kopiert. Den "originalen" grub-Ordner im /boot-Verzeichnis der Installation habe ich gelöscht.

update-grub kommt an an mein grub in der esp-Partition nicht heran. Der Befehl richtet entweder wie in diesem Fall gar nichts an oder er würde, wenn ich den "originalen" grub-Ordner nicht gelöscht hätte, einen neuen grub in diesem grub-Ordner, und nicht in dem von der esp-Partition, erstellen.

Außerdem benötige ich für die Installation auf dem USB-Stick kein grub-update mehr, oder?. Wenn ich grub neu installieren müsste, gehe ich wieder so vor, wie auf der Wikiseite beschrieben.

Viele Grüße

Unix-Lover

black_tencate

Avatar von black_tencate

Anmeldungsdatum:
27. März 2007

Beiträge: 11324

Hej Unix-Lover,

Unix-Lover schrieb:

... der Befehl update-grub liefert bei mir im Terminal die folgende Meldung:

/usr/sbin/grub-mkconfig: 253: /usr/sbin/grub-mkconfig: cannot create /boot/grub/grub.cfg.new: Directory nonexistent

kein Wunder, wenn Du

Den "originalen" grub-Ordner im /boot-Verzeichnis der Installation habe ich gelöscht.

Auf der esp-Partition habe ich grub für efi und legacy installiert und die grub.cfg der Installation in diese Partition kopiert.

hast Du denn für "EFI" und "legacy" getrennte Verzeichnisse angelegt? Kann mich nicht entsinnen, ob ich das schon mal ohne getrennte Verzeichnisse getan hätte. Ansonsten kannst Du die dafür zuständige(n) grub.cfg bearbeiten, wie Du willst.

update-grub kommt an an mein grub in der esp-Partition nicht heran.

käme es so oder so nicht, das ist ja gerader Sinn des stand-alone grub

oder er würde, wenn ich den "originalen" grub-Ordner nicht gelöscht hätte, einen neuen grub in diesem grub-Ordner, und nicht in dem von der esp-Partition, erstellen.

ja, und warum willst Du das verhindern? Bringt nur Komplikationen, wenn Du das System brave seine updates machen läßt.

Außerdem benötige ich für die Installation auf dem USB-Stick kein grub-update mehr, oder?

schaden tun sie aber nichts, und so "stolpert" das update und meckert.

Wenn ich grub neu installieren müsste, gehe ich wieder so vor, wie auf der Wikiseite beschrieben.

ja, das gilt für den stand-alone grub, das, was Du auf den Stick als System (Debian) installiert hast, ist und bleibt vollkommen unabhängig.

Gruß black tencate

Unix-Lover

(Themenstarter)
Avatar von Unix-Lover

Anmeldungsdatum:
15. November 2011

Beiträge: 79

Hallo black_tencate,

oder er würde, wenn ich den "originalen" grub-Ordner nicht gelöscht hätte, einen neuen grub in diesem grub-Ordner, und nicht in dem von der esp-Partition, erstellen.

ja, und warum willst Du das verhindern? Bringt nur Komplikationen, wenn Du das System brave seine updates machen läßt.

Ich hatte den originalen grub-Ordner nur zum Test gelöscht. Mittlerweile habe ich sauber auf dem USB-Stick installiert und den Ordner bestehen lassen.

update-grub kommt an an mein grub in der esp-Partition nicht heran.

käme es so oder so nicht, das ist ja gerader Sinn des stand-alone grub

Aus diesem Grund hatte ich deine Anmerkung (siehe https://forum.ubuntuusers.de/post/9070190/) nicht verstanden.

hast Du denn für "EFI" und "legacy" getrennte Verzeichnisse angelegt? Kann mich nicht entsinnen, ob ich das schon mal ohne getrennte Verzeichnisse getan hätte. Ansonsten kannst Du die dafür zuständige(n) grub.cfg bearbeiten, wie Du willst.

Ich habe beide grubs auf die selbe Partition installiert, sie landeten daher auch im selben Verzeichnis und verwenden dieselbe grub.cfg. Du hattest das auch selbst (sofern ich das jetzt richtig verstehe und nichts verwechsle) mal ausprobiert, siehe hier: https://forum.ubuntuusers.de/topic/xubuntu-live-usb-stick-mit-ntfs/2/#post-9054101

Viele Grüße

Unix-Lover

black_tencate

Avatar von black_tencate

Anmeldungsdatum:
27. März 2007

Beiträge: 11324

Hej Unix-Lover,

Unix-Lover schrieb:

... Ich habe beide grubs auf die selbe Partition installiert, sie landeten daher auch im selben Verzeichnis und verwenden dieselbe grub.cfg. Du hattest das auch selbst (sofern ich das jetzt richtig verstehe und nichts verwechsle) mal ausprobiert, siehe hier: https://forum.ubuntuusers.de/topic/xubuntu-live-usb-stick-mit-ntfs/2/#post-9054101

hatte ich, in der Tat. Ich würd 's trotzdem nicht machen

  1. beraubst du Dich dadurch der Möglichkeit, gleich beim Booten (mit den entsprechenden Hintergrunbildern) zu sehen, in welchem Moduodus gerade gebootet wird

  2. vermischst Du dadurch die grub Dateien und Verzeichnisse, um so besser, wenn das funktioniert

  3. verwende ich eine (weitere, per configfile /<Pfad>) grub.cfg auf einer Partition, die ich auch ohne root Rechte bearbeiten kann (Bequemlichkeit!)

Gruß black tencate

Unix-Lover

(Themenstarter)
Avatar von Unix-Lover

Anmeldungsdatum:
15. November 2011

Beiträge: 79

Hallo black_tencate,

deine Argumente gegen ein gemeinsames Grub-Verzeichnis sind nachvollziehbar, aber die Vorteile sind für mich nicht so wichtig, deshalb behalte ich das bei und packe grub-efi und grub-legacy in eine Partition.

Bislang war die Partitionstabelle von meinem USB-Stick MBR, dennoch kann ich diesen Stick ohne Probleme sowohl auf BIOS- als auch auf EFI-Rechnern booten und verwenden. Im Wiki-Eintrag Universal stand-alone grub für BIOS und EFI auf USB flashkey und internen HDD und SSD gibt es noch den Abschnitt, einen Hybrid-MBR für USB-Sticks mit GPT-Partitionstabelle zu erstellen.

Meine Frage dazu:

Gibt es einen Vorteil, wenn der USB-Stick eine GPT- statt einer MBR-Partitionstabelle hat? Wie gesagt, mit MBR läuft es ja auf beiden Systemen bereits sehr gut.

Meines Wissens verwendet man GPT für Systemfestplatten, die größer als 2 TB sind. Für USB-Sticks spielt das daher keine große Rolle, oder? (Momentan gibt es ja noch keine 2 TB USB-Sticks und ich nehme an, es dauert noch ein wenig, bis die kommen ...)

Wenn ich nun den Stick mit GPT-Tabelle versehen möchte und den Hybrid-MBR anlege, wie mache ich das, wenn ich ein gemeinsames GRUB-Verzeichnis habe?

Meine GPT-Partitionierung wäre dann ja so:

  • Partition 1: unformatiert mit 1M

  • Partition 2: fat32 mit 50 MB für grub-efi und grub-legacy

  • Weitere Partitionen (für den Hybrid-MBR nicht relevant, oder?)

Ich habe das bei einem Stick ausprobiert und die folgenden Eingaben gemacht. Sind die so korrekt (insbesondere der MBR hex code)?

Type from one to three GPT partition numbers, separated by spaces, to be
added to the hybrid MBR, in sequence: 1 2
Place EFI GPT (0xEE) partition first in MBR (good for GRUB)? (Y/N): n

Creating entry for GPT partition #1 (MBR partition #1)
Enter an MBR hex code (default 83): ef02
Set the bootable flag? (Y/N): n

Creating entry for GPT partition #2 (MBR partition #2)
Enter an MBR hex code (default 07): 0700
Set the bootable flag? (Y/N): y

Unused partition space(s) found. Use one to protect more partitions? (Y/N): n

Viele Grüße

Unix-Lover

Antworten |