Gentoo:更改磁盘开头的 /boot 分区的大小

Gentoo:更改磁盘开头的 /boot 分区的大小

我在 Gentoo 下运行一个盒子。该盒子是一个服务器(没有 GUI,只有 SSH)。

自从我使用 genkernel 生成内核以来,我发现它创建了多个占用某些位置的映像(System.map、initramfs、kernel):

$ du -ahd1|sort -k1h
0       ./boot
0       ./.keep
12K     ./lost+found
1.4M    ./memtest86plus
2.4M    ./System.map-genkernel-x86_64-4.9.34-gentoo
2.7M    ./System.map-genkernel-x86_64-4.12.5-gentoo
3.7M    ./kernel-genkernel-x86_64-4.9.34-gentoo
4.2M    ./initramfs-genkernel-x86_64-4.9.34-gentoo
8.1M    ./grub
8.3M    ./kernel-genkernel-x86_64-4.12.5-gentoo
31M

事实上,我的 /boot 分区只有 32M 大,我想将其大小更改为更适合它的大小(例如 256M)。

/dev/sda的如下;作为参考,它是英特尔SSD(虽然是旧型号)。

$ lsblk /dev/sda
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0 37.3G  0 disk
├─sda2   8:2    0 37.2G  0 part /
└─sda1   8:1    0   32M  0 part /boot

我知道我可以在某些情况下(磁盘末尾等)增大分区并缩小它。我也知道这是有风险的,如果不使用好的 GUI,我没有足够的信心去做这件事。

我可以这样做吗:

  • 缩小/dev/sda2以获得一些空间
  • 创建并挂载/dev/sd3/new_boot
  • 将整个复制/boot/new_boot(要么抛出一个简单的副本,要么抛出 dd ?)
  • 交换/boot/new_boot
  • 放下/dev/sda1并调整大小/dev/sda2

或者有更好的解决方案吗? (我可以物理访问服务器)

答案1

只需使用您的根分区来存储以下内容/boot

  • mount --move /boot /elsewhere或者umount /boot它和mount/elsewhere
  • 将 的内容复制/elsewhere到现在(可能)为空的位置/boot,同时保留所有内容的权利和所有者 ( cp -a /elsewhere/. /boot)
  • umount /elsewhere
  • /boot从......中去除/etc/fstab
  • 更新 grub (grub-install可能,或者你的 Gentoo 包装器,如果有的话)
  • 重启

/boot确保一切正常,并且在清空或回收之前没有使用旧分区中的任何内容(就我个人而言,我不会为 32M 承担任何风险)

相关内容