grub-install терпит неудачу после обновления с 12.04 до 14.04 (grub-pc сломан)

Я только что обновился с Ubuntu 12.04 до 14.04, но во время установки grub-install не удалось:

enter image description here

I продолжал установку и надеялся впоследствии решить проблему с ливнем. Однако я столкнулся с некоторыми трудностями. Я не перезапускал свою систему, так как опасаюсь, что она не сможет перезагрузиться.

Это ошибка, которую я всегда пытаюсь установить grub:

 $ sudo grub-install /dev/mapper/isw_cjccfdbihf_Volume0p1 
 Installing for i386-pc platform.
 grub-install: error: cannot find a GRUB drive for /dev/mapper/isw_cjccfdbihf_Volume0p1.  Check your device.map.

( Я также пробовал sudo grub-install /dev/sda, но он также терпит неудачу с тем же самым сообщением ошибок.)

Аппарат, похоже, использует настройку RAID 1. Вот некоторая информация:

$ ls -algh /dev/mapper/
total 0
drwxr-xr-x  2 root     120 Aug 12 19:41 .
drwxr-xr-x 16 root    5.2K Aug 12 20:27 ..
crw-------  1 root 10, 236 Jul 28 10:30 control
lrwxrwxrwx  1 root       7 Aug 12 19:41 isw_cjccfdbihf_Volume0p1 -> ../dm-1
lrwxrwxrwx  1 root       7 Aug 12 19:41 isw_cjccfdbihf_Volume0p2 -> ../dm-2
lrwxrwxrwx  1 root       7 Aug 12 19:41 isw_cjccfdbihf_Volume0p5 -> ../dm-3

$ sudo grub-probe -t device /boot/grub
/dev/mapper/isw_cjccfdbihf_Volume0p1

$ sudo fdisk -l

Disk /dev/sda: 250.1 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders, total 488397168 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: 0x0003b681

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048   468514815   234256384   83  Linux
/dev/sda2       468516862   488390655     9936897    5  Extended
/dev/sda5       468516864   488390655     9936896   82  Linux swap / Solaris

Disk /dev/sdb: 250.1 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders, total 488397168 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: 0x0003b681

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048   468514815   234256384   83  Linux
/dev/sdb2       468516862   488390655     9936897    5  Extended
/dev/sdb5       468516864   488390655     9936896   82  Linux swap / Solaris

Disk /dev/mapper/isw_cjccfdbihf_Volume0p1: 239.9 GB, 239878537216 bytes
255 heads, 63 sectors/track, 29163 cylinders, total 468512768 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/mapper/isw_cjccfdbihf_Volume0p1 doesn't contain a valid partition table
fdisk: unable to read /dev/mapper/isw_cjccfdbihf_Volume0p2: Inappropriate ioctl for device

В частности, последние две строки, по-видимому, указывают на более глубокую проблему. : - (

В сообщении об ошибке grub-install также упоминается файл device.map.

$ cat /boot/grub/device.map
cat: /boot/grub/device.map: No such file or directory

Я попытался сгенерировать его, но это тоже не помогло (сообщение об ошибке не изменилось):

$ sudo grub-mkdevicemap
$ cat /boot/grub/device.map
 (hd0)  /dev/disk/by-id/ata-WDC_WD2500AAJS-00YZCA0_WD-WCAYU7549707
 (hd1)  /dev/disk/by-id/ata-WDC_WD2500AAJS-00YZCA0_WD-WCAYU7501473

Есть ли у вас какие-либо рекомендации, что я должен попробовать дальше? Любая помощь глубоко оценена.

Обновление:

$ debconf-show grub-pc
debconf: DbDriver "passwords" warning: could not open /var/cache/debconf    /passwords.dat: Permission denied
* grub-pc/install_devices: /dev/disk/by-id/dm-name-isw_cjccfdbihf_Volume0
  grub-pc/kopt_extracted: false
  grub-pc/partition_description:
* grub2/linux_cmdline:
  grub-pc/install_devices_empty: false
  grub-pc/timeout: 10
  grub-pc/install_devices_failed_upgrade: true
* grub2/linux_cmdline_default: quiet splash
  grub-pc/postrm_purge_boot_grub: false
  grub-pc/hidden_timeout: true
  grub-pc/disk_description:
  grub-pc/mixed_legacy_and_grub2: true
  grub2/kfreebsd_cmdline_default: quiet splash
  grub2/device_map_regenerated:
* grub-pc/install_devices_failed: true
  grub-pc/chainload_from_menu.lst: true
  grub-pc/install_devices_disks_changed:
  grub2/kfreebsd_cmdline:

Обратите внимание на строку: grub-pc/install_devices: /dev/disk/by-id/dm-name-isw_cjccfdbihf_Volume0

Теперь содержимое /etc/fstab:

proc            /proc           proc    nodev,noexec,nosuid 0       0
/dev/mapper/isw_cjccfdbihf_Volume01 /               ext4    errors=remount-ro 0       1
/dev/mapper/isw_cjccfdbihf_Volume0p5 none            swap    sw              0       0

Файл резервной копии с 2012 года показывает несколько разные записи для swap (Volume05 вместо Volume0p5 ), что указывает на то, что имена могли быть изменены:

 # Note that this is an old file at the time the system was installed (Ubuntu 10.04 or 10.10)
 # (This is also the time from which the original grub configuration is from, isn't it?!)
 /dev/mapper/isw_cjccfdbihf_Volume01 /               ext4    errors=remount-ro 0       1
 /dev/mapper/isw_cjccfdbihf_Volume05 none            swap    sw              0       0

Итак, возможно, это имеет какое-то отношение к «_Volume01» и «_Volume0p1» против «_Volume0». /etc/fstab говорит «01», , ls /dev/mapper возвращает отображения «0p1», «0p2» и «0p5» (swap), и, наконец, debconf-show grub-pc говорит «Volume0». Я думаю, что это несоответствие является корнем проблемы.

Теперь Интересно:

Какая должна быть строка grub-pc/install_devices на выходе debconf-show grub-pc? Как я могу изменить настройки Grub, поэтому я могу экспериментировать с разными значениями?

I также просто заметил, что установка grub-pc нарушена:

$ sudo dpkg-reconfigure grub-pc
/usr/sbin/dpkg-reconfigure: grub-pc is broken or not fully installed
1
задан 13 August 2014 в 01:48

3 ответа

Установка grub2 в RAID-настройке завершается с ошибкой, потому что имя устройства каким-то образом изменено с обновлением, но система runnig еще не перезагружена, использует другую схему именования.

Просто отмените grub-install, когда он не работает и перезагрузка. Ранее установленный grub по-прежнему указывает на действительное ядро ​​и может загружаться без каких-либо проблем. После перезагрузки grub устанавливает без проблем.

3
ответ дан 24 May 2018 в 04:42
Блестящая. Я должен был изменить только одно, чтобы избежать этой ошибки при выполнении команды grub-install:

/usr/bin/grub-bios-setup: warning: Embedding is not possible. GRUB
can only be installed in this setup by using blocklists. However,
blocklists are UNRELIABLE and their use is discouraged..
/usr/bin/grub-bios-setup: error: will not proceed with blocklists.

Используя приведенные выше команды, я изменил команду grub-install для установки GRUB в MBR вместо (удаление «p1»):

$ grub-install --root-directory=/mnt /dev/mapper/isw_cjccfdbihf_Volume0

В противном случае это действительно спасло мое позади и много горя. Я очень благодарен.

1
ответ дан 24 May 2018 в 04:42

Ни один из ответов не работал для меня, поэтому я перезагрузился и использовал Recovery Repair Disk для устранения проблемы. Это сработало. Уф ...!

0
ответ дан 24 May 2018 в 04:42

Другие вопросы по тегам:

Похожие вопросы: