定期apt-get更新打破了grub

我昨天在我妻子的服务器上运行了一个定期更新(aptitude safe-upgrade)(一个带硬件RAID的Hetzner根服务器),并且服务器从此没有正确引导。 我可以使用Hetzner救援系统(AFAICS与使用Live CD启动本地PC相同)启动服务器,安装磁盘并将其locking到系统中。 我对每个分区运行fsck,它们都很好。 从救援系统chroot到操作系统,我已经做了以下

  • 运行grub-install /dev/sdagrub-install --recheck /dev/sda ,每次命令报告成功
  • 删除了昨天在错误更新中安装的新内核版本(3.2.0-65)

从查看/var/log/apt/term.log我可以看到在升级过程中发生以下错误:

Setting up grub-pc (1.99-21ubuntu3.15) ... /usr/sbin/grub-setup: warn: Attempting to install GRUB to a partition-less disk or to a partition. This is a BAD idea.. /usr/sbin/grub-setup: warn: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. However, blo cklists are UNRELIABLE and their use is discouraged.. Installation finished. No error reported.

更新安装的软件包列表是:

Install: linux-headers-3.2.0-65-generic:amd64 (3.2.0-65.99, automatic), linux-headers-3.2.0-65:amd64 (3.2.0-65.99, automatic), linux-image-3.2.0-65-generic:amd64 (3.2.0-65.99, automatic) Upgrade: apt-transport-https:amd64 (0.8.16~exp12ubuntu10.16, 0.8.16~exp12ubuntu10.17), iproute:amd64 (20111117-1ubuntu2.1, 20111117-1ubuntu2.3), uuid-runtime:amd64 (2.20.1-1ubuntu3, 2.20.1-1ubuntu3.1), libmount1:amd64 (2.20.1-1ubuntu3, 2.20.1-1ubuntu3.1), libblkid1:amd64 (2.20.1-1ubuntu3, 2.20.1-1ubuntu3.1), libdrm-radeon1:amd64 (2.4.46-1ubuntu0.0.0.1, 2.4.52-1~precise1), libdbus-1-3:amd64 (1.4.18-1ubuntu1.4, 1.4.18-1ubuntu1.5), util-linux:amd64 (2.20.1-1ubuntu3, 2.20.1-1ubuntu3.1), linux-generic:amd64 (3.2.0.61.72, 3.2.0.65.77), libgnutls26:amd64 (2.12.14-5ubuntu3.7, 2.12.14-5ubuntu3.8), libapt-inst1.4:amd64 (0.8.16~exp12ubuntu10.16, 0.8.16~exp12ubuntu10.17), php5-gd:amd64 (5.3.10-1ubuntu3.11, 5.3.10-1ubuntu3.13), grub-pc:amd64 (1.99-21ubuntu3.14, 1.99-21ubuntu3.15), apt-utils:amd64 (0.8.16~exp12ubuntu10.16, 0.8.16~exp12ubuntu10.17), update-manager-core:amd64 (0.156.14.13, 0.156.14.15), linux-firmware:amd64 (1.79.12, 1.79.16), dbus:amd64 (1.4.18-1ubuntu1.4, 1.4.18-1ubuntu1.5), apt:amd64 (0.8.16~exp12ubuntu10.16, 0.8.16~exp12ubuntu10.17), libdrm2:amd64 (2.4.46-1ubuntu0.0.0.1, 2.4.52-1~precise1), ifupdown:amd64 (0.7~beta2ubuntu11, 0.7~beta2ubuntu11.1), bsdutils:amd64 (2.20.1-1ubuntu3, 2.20.1-1ubuntu3.1), libdrm-nouveau1a:amd64 (2.4.46-1ubuntu0.0.0.1, 2.4.52-1~precise1), linux-headers-generic:amd64 (3.2.0.61.72, 3.2.0.65.77), dpkg:amd64 (1.16.1.2ubuntu7.4, 1.16.1.2ubuntu7.5), libdrm-intel1:amd64 (2.4.46-1ubuntu0.0.0.1, 2.4.52-1~precise1), libxml2:amd64 (2.7.8.dfsg-5.1ubuntu4.6, 2.7.8.dfsg-5.1ubuntu4.9), linux-image-generic:amd64 (3.2.0.61.72, 3.2.0.65.77), libapt-pkg4.12:amd64 (0.8.16~exp12ubuntu10.16, 0.8.16~exp12ubuntu10.17), grub-pc-bin:amd64 (1.99-21ubuntu3.14, 1.99-21ubuntu3.15), libuuid1:amd64 (2.20.1-1ubuntu3, 2.20.1-1ubuntu3.1), tzdata:amd64 (2014a-0ubuntu0.12.04, 2014e-0ubuntu0.12.04), gpgv:amd64 (1.4.11-3ubuntu2.5, 1.4.11-3ubuntu2.6), openssl:amd64 (1.0.1-4ubuntu5.13, 1.0.1-4ubuntu5.16), php5-mysql:amd64 (5.3.10-1ubuntu3.11, 5.3.10-1ubuntu3.13), mount:amd64 (2.20.1-1ubuntu3, 2.20.1-1ubuntu3.1), linux-libc-dev:amd64 (3.2.0-61.93, 3.2.0-65.99), grub-common:amd64 (1.99-21ubuntu3.14, 1.99-21ubuntu3.15), grub2-common:amd64 (1.99-21ubuntu3.14, 1.99-21ubuntu3.15), php5-fpm:amd64 (5.3.10-1ubuntu3.11, 5.3.10-1ubuntu3.13), php5-common:amd64 (5.3.10-1ubuntu3.11, 5.3.10-1ubuntu3.13), libssl1.0.0:amd64 (1.0.1-4ubuntu5.13, 1.0.1-4ubuntu5.16), gnupg:amd64 (1.4.11-3ubuntu2.5, 1.4.11-3ubuntu2.6)

有没有人知道我可以采取任何其他的步骤来纠正这个问题,然后重新安装整个服务器?

– 编辑 –

服务器操作系统:Ubuntu 12.04

磁盘分区表:

 root@rescue ~ # fdisk /dev/sda Command (m for help): p Disk /dev/sda: 400.1 GB, 400087408640 bytes 64 heads, 32 sectors/track, 381553 cylinders, total 781420720 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: 0x000d0317 Device Boot Start End Blocks Id System /dev/sda1 2048 8390656 4194304+ 83 Linux /dev/sda2 * 8392704 9441280 524288+ 83 Linux /dev/sda3 9443328 781420719 385988696 83 Linux Command (m for help): 

我在sda2上手动添加了启动标志,之前没有。 我查了另一台Hetzner服务器,情况也是如此。

不幸的是,我不得不请求Hetzner的优秀服务器人员将这个操作系统退出并拍摄下来,我重新安装了全新的Ubuntu 1404上的所有应用程序。