Не удалось получить канонический путь к /cow

Я пытаюсь установить Ubuntu 12.10 уже довольно долгое время и прохожу препятствия одно за другим. Сейчас я нахожусь в следующей ситуации.

У меня есть ПК и 10 ГБ HDD, который будет полностью посвящен Ubuntu, поэтому нет возможности использовать Wubi и двойную загрузку.

Я пытался установить с DVD, но он застрял на ошибке "Out of frequency". Поэтому мне пришлось приспособиться к варианту загрузки с USB. Но мой ПК не загружается с USB, поэтому в качестве обходного пути я выбрал "Plop Boot Manager". Итак, я выполняю процедуру установки следующим образом:

  1. запускаю с CD-привода, на котором установлен Plop.
  2. выбираю загрузку с USB в опциях plop.
  3. начинается загрузка с USB.
  4. монитор выдает ошибку "out of frequency".
  5. нажмите Shift+Alt+F1, чтобы открыть терминал.
  6. откройте grub с помощью sudo nano /etc/default/grub.
  7. сделайте необходимые изменения.
  8. sudo update-grub.

Теперь я получаю следующую ошибку:

/usr/sbin/grub-probe:error:failed to get canonical path of /cow.

Моя система

P4 3.06 GHz, 1 GB ram , 10 GB HDD без ОС, монитор CRT lg StudioWorks (7 лет). Mobo Mercury P4 266a NDMx (865 эквивалент). Вся система находится в рабочем состоянии под XP, но она не загружается с USB, а все остальные устройства работают отлично.

Что мне делать дальше?

Комментарии к вопросу (10)

После загрузки с live CD Ubuntu (пробовал 14.04 и 16.04) я смог обойти эту проблему, запустив update-grub chroot'ed на раздел grub. (Замените /dev/sda1 ниже тем разделом, на который вы установили grub. Все команды выполняйте от имени root).

mkdir /mnt/chrootdir
mount /dev/sda1 /mnt/chrootdir
for dir in proc dev sys etc bin sbin var usr lib lib64 tmp; do
    mkdir /mnt/chrootdir/$dir && mount --bind /$dir /mnt/chrootdir/$dir
done
chroot /mnt/chrootdir
update-grub2  # inside chroot
Комментарии (8)

Найдите свой диск, который должен загружаться с

mount

Или

parted -l

Или

fdisk /dev/sda

И введите p для списка разделов, ищите тип 83.

(Если у вас Fedora, возможно, вам придется использовать команды "vgs" и "lvs", а если у вас mdraid, то "cat /proc/mdstat" или mdadm -A --scan или insmod raid1 или insmod raid5 и затем mdadm -A --scan) и вы будете использовать /dev/md0 или /dev/mapper/my-vg вместо /dev/sda

затем попробуйте смонтировать его

mkdir /mnt
mount /dev/sda1 /mnt
cd /mnt
ls -l

Это ваш диск? Круто!

grub-install --recheck --root-directory=/mnt /dev/sda 

(Или какой бы диск /dev ни был вашим корневым, с указанием пути к нему)

grub-install --recheck --root-directory=/mnt /dev/sda --force

(Принудительно, если ему не нравятся ваши разделы).

Теперь он должен загрузиться в grub, и вы можете использовать команды grub для загрузки, после перезагрузки и выбора нужного загрузочного диска в BIOS Setup, или нажатием ESC или F12, в зависимости от BIOS и того, достаточно ли вы быстры, затем в приглашении Grub - вы можете использовать завершение вкладки, чтобы найти его, если это не (hd0,1), а (hd1,3) или что-то другое, но будьте осторожны, завершение вкладки иногда зависает на несколько секунд, если grub не может прочитать диск.

insmod linux
ls
root=(hd0,1)
linux /boot/vmlinuz root=/dev/sda1
initrd /boot/initrd
boot

Или, надеюсь, у вас все еще есть неповрежденный файл grub.cfg... или, может быть, это сработает:

grub-mkconfig -o /mnt/boot/grub/grub.cfg
Комментарии (2)

Пересмотренное решение на основе кода выше # Решения сверху не будет полностью работать без проблем, так как он монтируется загрузочный раздел в / (корень) файловой системы. Что делает жратву, жалуются на то, что в /Boot не существует, конечно. Это будет исправить эту проблему:

mkdir /mnt/chrootdir
mkdir /mnt/chrootdir/boot
mount /dev/sda1 /mnt/chrootdir/boot
for dir in proc dev sys etc bin sbin var usr lib lib64 tmp; do mkdir /mnt/chrootdir/$dir && mount --bind /$dir /mnt/chrootdir/$dir ; done
chroot /mnt/chrootdir
update-grub2  # inside chroot

Как вы видите, я также удалить разрывы строк, так что это легче для выполнения для всех.

Другое (более простое) решение

Если у вас возникли проблемы при получении его на работу вы должны смотреть, чтобы скопировать раздел /Boot на / (корневой) секции. Для запуска системы с Убунту лайв загрузиться DVD-диска и откройте терминал. Внутри его тип:

sudo su
fdisk -l

Чтобы выяснить, какие разделы у вас есть. В моем случае sda1-это раздел /Boot, который составляет около 250МБ большие и sda5, Поэтому который около 500ГБ. Я использую эти значения в приведенные ниже команды:

mkdir /mnt/boot/
mount /dev/sda1 /mnt/boot/

mkdir /mnt/root/
mount /dev/sda5 /mnt/root/

cp -R /mnt/boot/ /mnt/root/boot/

Установить флаг для раздела с данными и удалить ее на загрузочный раздел:

fdisk /dev/sda
b -> 1 (unset the bootable flag for the first partition)
b -> 5 (set the bootable flag for the fifth partition)
w -> write changes to the MBR

Ваш компьютер теперь будет выглядеть внутри sda5, поэтому для загрузки файлов. Время, чтобы снова сделать chroot, на этот раз с некоторым необходимых папок, необходимых для жратвы и которые генерируются уже на вашем рабочем видео диска:

mkdir /mnt/chrootdir/
mkdir /mnt/chrootdir/dev/
mkdir /mnt/chrootdir/proc/
mkdir /mnt/chrootdir/sys/

mount /dev/sda5 /mnt/chrootdir/
mount --bind /dev/ /mnt/chrootdir/dev/
mount --bind /proc/ /mnt/chrootdir/proc/
mount --bind /sys/ /mnt/chrootdir/sys/

chroot /mnt/chrootdir/

grub-install /dev/sda

Установка закончена. Ошибка не сообщается.

Если вы не видите сообщение о том, что жратвы.файл CNF создается затем также выполните команду обновить:

update-grub2 /dev/sda

Теперь вы можете спокойно перезагрузиться и посмотреть меню известен загрузки снова появляются.

Это решение было единственным, которое работает для меня после перехода с физического сервера на виртуальную машину. Я надеюсь, что кто-то находит это полезным!

Комментарии (0)

Я знаю, это'старая проблема, но у меня была та же проблемы сегодня с актуальной версией Минт Линукс (Убунту основе). Я нашел очень простое решение! :-) Снять интернет-соединение во время первой установки. Эта остановка загрузки не совместимый файл grub2. Сделать обновление после завершения установки.

Комментарии (0)

Получил ту же ошибку. Единственная проблема была в том, что корову все же был смонтирован на /.

Немного sudo размонтировать /корова сделали свое дело.

Комментарии (0)

Именно команда update-grub выдаст ошибку при использовании ее с live cd. Я столкнулся с подобной ситуацией, когда делал спасение grub. Проблема в том, что команды update-grub и grub-install не работают непосредственно под live cd (я не знаю почему). Поэтому вам нужно перейти в /usr/sbin, где находятся эти команды, и выполнить их оттуда (т.е. ./update-grub).

Комментарии (6)