[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: grub auf anderer hd installieren.



On Fri, 23 Jul 2021 22:43:48 +0200
Christian Schnitz <ml-debian@cschnitz.eu> wrote:

> so richig schlau bin aus der Beschreibung
> nicht geworden

Ich weiß. Es fällt mir schwer das möglichst
kurz aber vollständig zu beschreiben.

> Du hast einen neue Festplatte die als
> /dev/sda funktionieren soll, die allerdings,
> aus welchen gründen auch immer, keine
> Boot-Partition hat?

Ähm. Jein, nicht genau. Das waren zwei
verschiedene Lösungsansätze.

Der Rechner ist so 5-6 Jahre alt und hat u.a
eine M.2 und eine mechanische HD. Die Idee war
schon damals, auf M.2 das System zu haben und
auf den HDs Daten abzulegen. Das war dann
nvme0n1p1 (M.2) und sdb (HD). Mittlerweile weiß
ich ja, daß man von M.2 booten kann, bloß
damals nicht. Trotzdem wollte ich debian auf
M.2 haben, da das so viel schneller geht.

Die Lösung war: auf der sdb 3 Partitionen zu
machen: Eine EFI, eine Grub-Boot und eine für
die Daten. Die EFI mußte nur gemacht werden,
der netinstall (grub?) hat das dann ausgefüllt.
Die Grub-Partition hat nur, was auf jedem
debian unter /boot ist. Der Rest von debian ist
auf nvme0n1p1 (M.2). Hat am Ende geklappt, wenn
auch nicht auf Anhieb, und bis heute
funktioniert. (netinstall hatte das System dann
auch auf nvme0n1p1 geschrieben, nur /boot war
auf der sdb).

Nun ist mir sdb zu klein geworden, hab mir eine
SSD geholt und will damit sdb ersetzen. So hab
ich die SSD eingehängt (ist zu sda geworden)
und die gleichen Partitionen angelegt: Eine
EFI, eine Grub-Boot und eine für Daten. Dann
hab ich alle Daten von sdb auf sda kopiert
(einfach mit cp -a).

Was fehlt, wäre der Inhalt der EFI Partition
und grub, sodaß man davon booten kann. So hab
ich unter (sda)/boot/grub/grub.cfg alle UUIDs
von sdb durch die UUID von der sda ersetzt und
grub-install mit /dev/sda aufgerufen. Das hat
nicht gleich geklappt, aber irgendwann war
genug Grub im root oder boot Sektor, daß
wenigstens ein grub rescue promt gekommen ist.

Die Lösung wäre nun die Methode, wie man
grub-install aufruft, damit dann tatsächlich
von sda gebootet werden kann, auch wenn sdb
nicht mehr da ist. Und diese Lösung suche ich.

Da ich aber mittlerweile weiß, daß man von M.2
auch booten kann, kam mir auch der Gedanke,
(zweiter Ansatz) direkt von der (nicht zu
ersetzenden) M.2 zu booten. Dazu hab ich im BIOS
das AHCI gesetzt. Ob das genug war, weiß ich
nicht. BIOS sieht die M.2, und wenn debian
gebootet hat auch. Der Versuch grub-install
/dev/nvme0n1p1 ging schief mit der
Fehlermeldung, daß grub eine EFI und eine
Boot-Partition benötige. Und da dies das
Betriebssystem von meinem Rechner ist, wollte
ich keine Experimente mit zusätzlichen
Partitionen machen. Da ich sda sowieso brauche,
scheint mir dies irgendwie die beste Lösung in
dieser Situation zu sein.

> Grub greift deshalb noch auf die alte
> Festplatte /dev/sdb zu und startet von
> dieser Platte?

Genau. Ich vermute, daß dies daran liegt, daß
Grub, trotz meines Versuchs grub.cfg von sda zu
nehmen, trotzdem das alte von sdb genommen hat
und deswegen sucht grub beim booten nach sdb.

Ich kann booten, solange sdb da ist, doch wird
dann sda nicht verwendet (df zeigt, daß /boot
auf sdb ist, nicht auf sda).

Auch die Konfiguration von Grub, wie man sie
vom boot-Bildschirm aus editieren kann,
zeigt den UUID von sdb. Wenn ich diese UUID
dann durch den von sda ersetze, startet der
kernel offenbar von sda, versucht aber ein raid
aufzubauen (das nicht existiert) um am Ende in
initramfs zu landen. Offenbar gibt es noch
weitere Referenzen zum UUID von sdb, die ich
nicht finde.

Wenn sdb nicht angeschlossen ist, komme ich
sofort in grub rescue raus. Da kann ich dann
versuchen die Befehle manuell einzugeben, doch
am Ende ist da wieder das initramfs als promt.
Das Problem dabei ist, daß ich nvme0n1p1 (M.2)
nicht als root setzen kann, da dort ein ext4
drauf ist, und grub kommt damit nicht zurecht.
Wenn ich aber das device für sda eingebe,
startet der Kernel, findet aber das root file
system nicht.

> Warum installierst Du nicht Debian auf der
> neuen Festplatte und kopierst von der alten
> Platte alles rüber?

Das ist sicherlich ein Lösungsansatz. Das
Problem dabei ist, daß ich nicht weiß, wie ich
es dann erreichen kann, daß danach der Wechsel
von sda auf nvme0n1p1 durchgeführt wird. Das
hab ich damals mit netinstall hingekriegt, kann
mich aber nicht mehr erinnern wie. Daher die
Sorge, daß ich am Ende mit einem unbootbaren
System da stehe und nicht mehr in meinen
Rechner komme.


Reply to: