服务器升级失败,启动分区太小

服务器升级失败,启动分区太小

从 Ubuntu 12.10 升级到 13.10 后,由于/boot分区只有 54MB 大小,升级过程在启动后立即中止。服务器有 2 个硬盘,每个硬盘有 2 个分区,通过 RAID1 连接。由于服务器位于数据中心,因此无法使用实时系统磁盘启动gparted。通过网络加载的救援系统不会访问硬盘(fdisk -l那里是空的)。

问题是: 我怎样才能将/boot其放大,以便初始 RAM 磁盘可以容纳进去(建议:300MB)?

do-release-upgrade显示如下:

Not enough free disk space

The upgrade has aborted. The upgrade needs a total of 55.2 M free
space on disk '/boot'. Please free at least an additional 29.2 M of
disk space on '/boot'. Empty your trash and remove temporary packages
of former installations using 'sudo apt-get clean'.

uname -r显示:3.5.0-47-generic

dpkg -l linux-im*显示如下:

Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                                   Version                  Architecture             Description
+++-======================================-========================-========================-=================================================================================
un  linux-image                            <none>                                            (no description available)
un  linux-image-2.6                        <none>                                            (no description available)
un  linux-image-2.6.24-16-server           <none>                                            (no description available)
un  linux-image-2.6.24-23-server           <none>                                            (no description available)
un  linux-image-2.6.24-24-server           <none>                                            (no description available)
un  linux-image-2.6.24-25-server           <none>                                            (no description available)
un  linux-image-2.6.24-28-server           <none>                                            (no description available)
rc  linux-image-2.6.32-32-generic-pae      2.6.32-32.62             i386                     Linux kernel image for version 2.6.32 on x86
rc  linux-image-2.6.32-45-generic-pae      2.6.32-45.104            i386                     Linux kernel image for version 2.6.32 on x86
rc  linux-image-2.6.32-46-generic-pae      2.6.32-46.108            i386                     Linux kernel image for version 2.6.32 on x86
rc  linux-image-2.6.32-47-generic-pae      2.6.32-47.109            i386                     Linux kernel image for version 2.6.32 on x86
rc  linux-image-2.6.32-48-generic-pae      2.6.32-48.110            i386                     Linux kernel image for version 2.6.32 on x86
rc  linux-image-2.6.32-53-generic-pae      2.6.32-53.115            i386                     Linux kernel image for version 2.6.32 on x86
rc  linux-image-2.6.32-54-generic-pae      2.6.32-54.116            i386                     Linux kernel image for version 2.6.32 on x86
rc  linux-image-2.6.32-55-generic-pae      2.6.32-55.117            i386                     Linux kernel image for version 2.6.32 on x86
un  linux-image-3.0                        <none>                                            (no description available)
ii  linux-image-3.5.0-47-generic           3.5.0-47.71              i386                     Linux kernel image for version 3.5.0 on 32 bit x86 SMP
ii  linux-image-extra-3.5.0-47-generic     3.5.0-47.71              i386                     Linux kernel image for version 3.5.0 on 32 bit x86 SMP
ii  linux-image-generic                    3.5.0.47.63              i386                     Generic Linux kernel image
ii  linux-image-generic-pae                3.5.0.47.63              i386                     Transitional package

ls -la /boot显示如下:

total 26028
drwxr-xr-x  4 root root     2048 Mar  1 14:24 .
drwxr-xr-x 26 root root     4096 Mar  1 14:23 ..
-rw-------  1 root root  2324217 Feb 19 01:28 System.map-3.5.0-47-generic
-rw-r--r--  1 root root   862198 Feb 19 01:28 abi-3.5.0-47-generic
-rw-r--r--  1 root root   154687 Feb 19 01:28 config-3.5.0-47-generic
drwxr-xr-x  2 root root     1024 Mar  1 14:23 grub
-rw-r--r--  1 root root 18016141 Mar  1 14:24 initrd.img-3.5.0-47-generic
drwx------  2 root root     1024 Jul 30  2011 lost+found
-rw-------  1 root root  5175536 Feb 19 01:28 vmlinuz-3.5.0-47-generic

df -h显示如下:

Filesystem      Size  Used Avail Use% Mounted on
/dev/md1        458G  161G  275G  37% /
udev            2.0G  4.0K  2.0G   1% /dev
tmpfs           809M  304K  809M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            2.0G     0  2.0G   0% /run/shm
none            100M     0  100M   0% /run/user
/dev/md0         54M   26M   25M  51% /boot

fdisk -l显示如下:

Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 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
Disk identifier: 0x00024aac

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *          63      112454       56196   fd  Linux raid autodetect
/dev/sda2          112455     2216969     1052257+  82  Linux swap / Solaris
/dev/sda3         2216970   976768064   487275547+  fd  Linux raid autodetect

Disk /dev/sdb: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 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
Disk identifier: 0x0002518c

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *          63      112454       56196   fd  Linux raid autodetect
/dev/sdb2          112455     2216969     1052257+  82  Linux swap / Solaris
/dev/sdb3         2216970   976768064   487275547+  fd  Linux raid autodetect

Disk /dev/md1: 499.0 GB, 498970066944 bytes
2 heads, 4 sectors/track, 121818864 cylinders, total 974550912 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
Disk identifier: 0x00000000

Disk /dev/md1 doesn't contain a valid partition table

Disk /dev/md0: 57 MB, 57475072 bytes
2 heads, 4 sectors/track, 14032 cylinders, total 112256 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
Disk identifier: 0x00000000

Disk /dev/md0 doesn't contain a valid partition table

cat /proc/mdstat显示如下:

Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 sda1[0] sdb1[1]
      56128 blocks [2/2] [UU]

md1 : active raid1 sdb3[1] sda3[0]
      487275456 blocks [2/2] [UU]

unused devices: <none>

lspci -v | grep RAID显示如下:

01:0e.0 RAID bus controller: Broadcom BCM5785 [HT1000] SATA (Native SATA Mode) (prog-if 05)

答案1

可以删除当前内核(sudo apt-get purge linux-image-*),然后,无需重启安装最新内核(sudo apt-get install linux-image-generic)。这应该工作[1],但如果没有,您将无法启动系统。

另一个解决方案是使用Ksplice 上行轨道,它允许您更新内核而无需重新启动。唯一的问题是免费版本仅支持 Ubuntu Desktop,因此您必须为该服务付费,但可能在服务器上使用桌面版本的方法。

1.“Ubuntu 很高兴地删除了我的(正在运行的)内核”Ubuntuforums.org

答案2

我有一个建议的解决方案,但我强烈建议您在摆弄服务器之前先在本地机器或虚拟机上尝试它,特别是当您无法物理接触它时。

需要注意的是:

  1. 卸载/boot文件系统。
  2. 禁用交换空间(sudo swapoff /dev/sda对于 也同样如此/dev/sdb)。
  3. 使用fdiskparted删除两个交换分区,然后重新创建大小更小、起始点更靠后的分区。“较靠后的起始点”部分至关重要,因为您需要在分区 1 和 2 之间留出间隙。此外,请确保两个磁盘上的起始点相同。
  4. 使用fdisk不是 parted),删除分区 1/dev/sda并重新创建起点完全相同以及更晚的终点。这可能有点棘手。两个磁盘上的分区 1 的起始点都是扇区 63,现代工具可能不愿意创建该扇区。因此,您可能需要挖掘旧版本才能fdisk使其正常工作。
  5. 在保存更改之前,验证新的第一个分区的起点是否与现在的相同——扇区 63。如果不是,则中止没有保存更改。(您可以fdisk通过键入q或按 Ctrl+c 来执行此操作,但parted只要您键入命令进行更改,磁盘上就会发生更改,这就是为什么我说用 来执行此操作的原因fdisk——您可以使用 中止,fdisk但不能使用parted。)
  6. w如果您的新的第一个分区从扇区 63 开始,请输入来保存更改fdisk
  7. 重复第一个分区的扩展/dev/sdb
  8. 键入sudo partprobe以使内核识别更改的分区。
  9. 可能需要在这里做一些 RAID 操作才能让 RAID 识别更改的分区,但我对此并不确定。
  10. 如果/boot使用 ext2fs、ext3fs 或 ext4fs,您可以使用它resize2fs来调整文件系统的大小,以适应其所在分区的新大小。其他文件系统也有类似的工具。
  11. 在两个磁盘的第二个分区上创建新的交换空间,如下所示mkswap /dev/sda2
  12. 如果需要,请进行编辑/etc/fstab以调整对交换分区的更改。(它们通常通过 UUID 值引用,这些值将会发生变化。使用blkid来了解新的 UUID 值;或将它们称为/dev/sda2/dev/sdb2。)
  13. 用于swapon重新激活您的交换空间。
  14. 为了进行酸性测试,请重新启动。

相关内容