Wie können Sie Grub vollständig auf eine neue Partition verschieben? Als ich Ubuntu (Kubuntu) installiert habe, habe ich nur 256 MiB für die /boot
Partition zugewiesen, was nicht ausreicht. Jedes Mal, wenn ein neuer Kernel installiert wird, schlägt die Installation teilweise fehl, da nicht genügend Speicherplatz vorhanden ist und ich manuell eingreifen muss. Ich versuche also, grub von meiner alten Boot-Partition /dev/sdb5
auf meine neue 512-MiB-Partition zu verschieben /dev/sdb7
.
Ich habe bearbeitet /etc/fstab
, um die neue Boot-Partition zu verwenden.
# /boot was on /dev/sdb5 during installation
#UUID=f1fcbfbe-7943-4e48-9796-8d0c42076c0b /boot ext4 defaults 0 2
# /boot is now on /dev/sdb7
UUID=70d8be3a-6b6c-4722-ab0d-e79d93e6dd1c /boot ext4 defaults 0 2
Ich habe /boot/efi
( /dev/sdb2
) und /boot
( /dev/sdb5
) abmontiert . Und dann montiert /dev/sdb7
als /boot
, wieder montiert /boot/efi
und wieder montiert /dev/sdb5
als /mnt/boot
.
Ich rannte:
$ sudo grub-install /dev/sdb7
Installing for x86_64-efi platform.
Installation finished. No error reported.
Und:
$ sudo update-grub
Generating grub configuration file ...
Found Windows Boot Manager on /dev/sdb2@/EFI/Microsoft/Boot/bootmgfw.efi
Adding boot menu entry for EFI firmware configuration
done
Das Linux-Image fehlt jedoch in /boot
:
$ ls -1 /boot
efi
grub
lost+found
Während der alte /boot
hat:
$ ls -1 /mnt/boot/
abi-4.15.0-32-generic
abi-4.15.0-33-generic
config-4.15.0-32-generic
config-4.15.0-33-generic
efi
grub
initrd.img-4.15.0-33-generic
lost+found
memtest86+.bin
memtest86+.elf
memtest86+_multiboot.bin
retpoline-4.15.0-32-generic
retpoline-4.15.0-33-generic
System.map-4.15.0-32-generic
System.map-4.15.0-33-generic
vmlinuz-4.15.0-33-generic
Mir muss ein Schritt fehlen. Was ist der richtige Prozess, um dies zu tun? Fehlt mir ein Befehl zum Neuerstellen des Linux-Images?
HINWEIS: Der Grund, warum ich /boot
eine separate Partition sein möchte , /
ist, dass /
es sich um eine LUKS-verschlüsselte ext4-Partition handelt.
Ausgabe von sudo fdisk -l
:
Disk /dev/sda: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: CFE364AE-6B98-4A85-BE10-7E8A8833426F
Device Start End Sectors Size Type
/dev/sda1 2048 976762879 976760832 465.8G Microsoft basic data
/dev/sda2 976762880 977287167 524288 256M Linux filesystem
Disk /dev/sdb: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 1AB601E6-CACA-4A3F-828A-A334CC3564DF
Device Start End Sectors Size Type
/dev/sdb1 2048 923647 921600 450M Windows recovery environment
/dev/sdb2 923648 1128447 204800 100M EFI System
/dev/sdb3 1128448 1161215 32768 16M Microsoft reserved
/dev/sdb4 1161216 1534093311 1532932096 731G Microsoft basic data
/dev/sdb5 1534093312 1534617599 524288 256M Linux filesystem
/dev/sdb6 1534617600 1952475135 417857536 199.3G Linux filesystem
/dev/sdb7 1952475136 1953523711 1048576 512M Linux filesystem
Disk /dev/mapper/sdb6_crypt: 199.3 GiB, 213940961280 bytes, 417853440 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Ausgabe von lsblk -lf
:
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
sda1 ntfs Extra Disk 54186D8E186D7042
sda2 ext4 fae6b821-6644-4883-a2f1-da5c42485431
sdb
sdb1 ntfs Recovery 44F21BC7F21BBC5C
sdb2 vfat 941C-5A1E /boot/efi
sdb3
sdb4 ntfs 6C32289F3228706E
sdb5 ext4 Linux Boot Old f1fcbfbe-7943-4e48-9796-8d0c42076c0b /boot
sdb6 crypto_LUKS b2d73541-783b-4336-a62c-1e11d0cc2b47
sdb7 ext4 Linux Boot 70d8be3a-6b6c-4722-ab0d-e79d93e6dd1c
sr0
sdb6_crypt ext4 Linux Root 1e8b2b29-1857-4b38-84ee-d3c386f5085e /
256 MB für
/boot
und 200 GB für/
Sie haben viel Speicherplatz, aber das
/boot
Verzeichnis ist "Speicherplatz herausgefordert". Ich würde vorschlagen , sich bewegende/boot
vonsdb5
zu/
aufsdb6
.Ihr aktueller Plan,
/boot
auf eine neue Partitionsdb7
mit nur 512 MB zu wechseln, scheint begrenzt zu sein. Manchmal/boot
kann es viele GB sein, wenn ich mehrere Kernel teste.Wie bewege ich mich
/boot
zu/
Es gibt bereits eine Antwort hier :
Ja, es ist möglich. Auch ist es nicht einfach. Wenn Sie eine getrennte / boot-Partition und / oder / partition verschieben möchten, sollten Sie zunächst die fstab-Einträge ändern.
Wenn Sie die Dateien auf eine neue Partition verschieben, vergessen Sie nicht, sie
cp -p
beim Kopieren zu verwenden, um die Berechtigungen beizubehalten. Passen Sie dann Ihre/etc/fstab
neuen UUIDs der Partitionen an, die Sie verwenden werden. Sie können die UUID der Partition abrufen, indem Sie ausführen,blkid /dev/sdXn
wobei X der Name des Laufwerks und n die Anzahl der Partitionen ist.Sie können blkid auch verwenden, um Beschriftungen an Ihre Partitionen anzuhängen und dann über Beschriftungen zu mounten, was viel einfacher zu lesen ist
man blkid
, um mehr zu erfahren.Nachdem Sie die Partitionen geändert und / etc / fstab angepasst haben, sollten Sie das
update-grub
Skript - verfügbar unter Debian / Ubuntu ausführen odergrub-mkconfig -o /boot/grub/grub.cfg
eine neue Konfigurationsdatei generieren und dann grub auf der ersten Festplatte neu installieren, von der aus Sie bot.grub-install --recheck /dev/sdb
Vergessen Sie natürlich nicht, dass Sie beim Kopieren eine neue / oder / boot-Partition auf / mnt mounten und nach dem Kopieren aller Dateien diese als / und / boot chroot mounten und erst dann das Update des Grubs ausführen, wenn Sie möchten, dass die Dinge korrekt ausgeführt werden .
quelle
/boot
es sich bei einer separaten Partition/
um eine LUKS-verschlüsselte ext4-Partition handelt. 512 MiB für ist/boot
wahrscheinlich zu klein. Ich werde es auf 1 GiB erhöhen. Ich teste keine neuen Kernel, außer wenn apt-get sie aktualisiert, und ich überprüfe, ob ich erfolgreich booten kann./boot
Partition haben müsste, würde ich vorsichtig sein und beispielsweise 1 oder 2 GB verwenden, was nur 0,5% oder 1% Ihres 200 GB Speicherplatzes entspricht. Denken Sie daran, wenn Sie vergessen zu laufensudo apt autoremove
, könnten Sie ein paar Kernel haben. Dann hätte ich einen Cron-Neustart-Job, der mir eine E-Mail schickte, wenn ich mehr als 3 Kernel installiert hätte. Vielen Dank, dass Sie die Verwendung der Verschlüsselung erklärt haben, da ich diesen Weg noch nie gegangen bin.Ich denke, Sie müssen nur alle Kerneldateien aus dem alten Verzeichnis in ein neues verschieben / kopieren und grub aktualisieren. Versuchen:
sudo cp /mnt/boot/* /boot && sudo update-grub
quelle