Ошибка не удалось получить канонический путь cow

Find your drive that’s supposed to boot with

mount

Or

parted -l

Or

fdisk /dev/sda

And type p to list the partitions, look for type 83.

(If you’ve got Fedora you might have to use the commands vgs and lvs and if you’ve got mdraid you might have to cat /proc/mdstat or mdadm -A --scan or insmod raid1 or insmod raid5 and then mdadm -A --scan) and you will use /dev/md0 or /dev/mapper/my-vg instead of /dev/sda

then try mount it

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

Is this your drive? Cool!

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

(Or whichever /dev drive your root is, with it’s mounted path)

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

(Force it if it doesn’t like your partitions.)

Now it should boot into grub, and you can use the grub commands to boot up, after rebooting and selecting the right boot drive from the BIOS Setup, or by pressing ESC, F8 or F12 depending on your BIOS and whether you are quick enough, then at the Grub prompt — you can use tab completion to find it if it’s not (hd0,1) but (hd1,3) or something else instead, but beware, tab completion sometimes hangs for a few seconds if grub can’t read the filesystem. Once booted into Grub you can try to boot with:

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

Or, hopefully you’ve still got an intact grub.cfg file…

ls
ls (hd0,1)/
ls (hd0,1)/boot
configfile (hd0,1)/boot/grub.cfg

Grub 1 allows you to do the installation from Grub:

install (hd0,1)

Once booted from the correct drive, you can retry update-grub and grub-install. If it still fails, you can try:

grub-mkconfig -o /mnt/boot/grub/grub.cfg

Your paths may differ of course, so just play with these commands until you can see what’s where and what’s going on.

It might be a sign of imminent hard drive failure at worst, or at best maybe just a partition flag or boot file that got overwritten accidentally, or a deliberately- or accidentally broken installer from another OS.

I get this error too, and I don’t think it happens in a chroot.

Background

I think this is when systemd cannot find the path because it is mounted in a directory. So, the difference is when you setup a chroot you already configure access to hardware, including drives.

Though you can configure this access inside Systemd that does not mean you can configure permissions for those drives the same way.

For instance, I created this file:

/etc/systemd/system/systemd-nspawn@.service.d/override.conf

And it contains these settings:

[Service]
DeviceAllow=char-usb_device rwm
DeviceAllow=char-usb
[Files]
Bind=/var/cache/apt/pkgcache.bin
Bind=/var/cache/apt/srcpkgcache.bin

This still does not work when using grub-install /dev/sda or update-grub for a USB on Pi debootstrapped with Debian Stretch. Even using grub-uboot and grub-efi-arm there is still that error the grub-probe cannot find the canonical path.

Not only that but though update-grub will see and know what the operating systems are, but interestingly grub-install does not recognize the Debian operating system is on USB.

Example

root@raspixmc:/home/pi# grub-install /dev/sda
Installing for arm-uboot platform.
grub-install: warning: no hints available for your platform. Expect 
reduced performance.
grub-install: warning: WARNING: no platform-specific install was 
performed.
Installation finished. No error reported.
root@raspixmc:/home/pi#

Interesting, when I create a chroot and can run update-grub, even though I am on the operating system that I debootstrapped to the USB itself it does not see its own operating system!

root@raspixmc:/home/pi# mount /dev/sda1 /mnt
root@raspixmc:/home/pi# cd /mnt
root@raspixmc:/mnt# mount --bind /dev dev/
root@raspixmc:/mnt# mount --bind /sys sys/
root@raspixmc:/mnt# mount --bind /proc proc/
root@raspixmc:/mnt# mount --bind /dev/pts dev/pts
root@raspixmc:/mnt# chroot . bin/bash
root@raspixmc:/# update-grub
Generating grub configuration file ...
Found Raspbian GNU/Linux 9 (stretch) on /dev/mmcblk0p2
done
root@raspixmc:/#

It only sees Raspbian. This happens only when trying to install and update GRUB inside the container, but when I exit the chroot.

Watch how it now works because I did not unmount the chroot directories:

/dev dev/
/sys sys/
/proc proc/
/dev/pts dev/pts

From outside the container mind you, I am running this command with grub-uboot installed on Raspbian and no Grub on the USB containing debootstrapped Debian.

root@raspixmc:/mnt# update-grub
Generating grub configuration file ...
Found Raspbian GNU/Linux 9 (stretch) on /dev/mmcblk0p2
Found Debian GNU/Linux 9 (stretch) on /dev/sda1
done
root@raspixmc:/mnt#

This does not happen using one of the unofficially available images for Debian ARM, but obviously this is still a customization not yet available for debootstrapping.

Troubleshooting

Really there are times when it is better just to create a path. The only next possibility (and a probable one) is to simply write GRUB. And for that I am just going to read on this page.

https://www.dedoimedo.com/computers/grub-2.html

Another thing I want to share about this issue is a solution that might work, but realize microSD cards are very sensitive. I have been building my own Linux images and learned this fast. The best thing to do is use Qemu whenever you can, but to attempt to clear an old partition table you might try running sgdisk --zap-all on the drive.

sgdisk --zap-all /dev/sdd

In fact, sometimes if it gives an error the first time and it is not a read-only error, you can run it again and it will finally all the partition tables new or old.

And you can use Qemu to emulate Raspberry Pi on a standard AMD/Intel-based PC. I would recommend it. I know this is more information than pertains to the original post, but I think that is likely how this error is derived. It is the container age.

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

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
  • Печать

Страницы: [1]   Вниз

Тема: Не удалось получить канонический путь «/cow».  (Прочитано 5747 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн
Slasher40

Чёткое и внятное описание проблемы:
Здравствуйте, в Linux-е я новичок так что извиняюсь, предыстория:
Все началось с того что решил глубже окунуться в систему, на жесткий диск решил не ставить так как знаю откуда у меня растут руки. Поставил все на флешку с помощью Kali Linux (Так же на флешке с разделом: Persistence) ставил с помощью mkusb.

Нужно было установить драйвера Nvidia но он не применялся, в итоге оказалось что было мало места. Выделил место установилось но драйвер все так же не определяется. Устанавливал 396 драйвер, но все без успешно. Дальше раскрывая проблему понял что возможно нужно установить новое ядро Установил: 4.18.8 но как я понял дальше нужно было выбрать запуск с этого ядра. Решил воспользоваться: Grub Cosomizer но он выдает окно с: «grub-mkconfig не может быть успешно выполнен. Сообщение об ошибке: /usr/sbin/grub-probe: ошибка: не удалось получить канонический путь «/cow.» » Кнопка с выходом и изменением переменных сред, есть ошибка на: /boot/grub/device.map и /boot/grub/grub.cfg

Пробовал восстановить загрузчик,но безрезультатно вот лог: paste.ubuntu.com/p/tkMy3fYkwY/

Ошибка в загрузчике? И как исправить?

Заранее спасибо.

Правила форума
1.4. Листинги и содержимое текстовых файлов следует добавлять в сообщение с помощью тегов

Показать скрытое содержание
или [code]…[/code], либо прикреплять к сообщению в виде отдельного файла. Длинные гиперссылки следует оформлять при помощи тега [url=]…[/url]

  —Aleksandru

« Последнее редактирование: 21 Сентября 2018, 20:26:05 от Aleksandru »


Оффлайн
ecc83

решил глубже окунуться в систему, на жесткий диск решил не ставить

Это просто анекдот какой то…
Если нужно «окунуться», тогда выделяйте 20Гб дискового пространства и ставьте систему на диск.
Новые ядра не трогайте, разберитесь сначала со старыми…


Оффлайн
Slasher40

А по другому это ни как решить нельзя? Лишнего жесткого нет, да и приходится стартовать с разных компьютеров, а флешка с постоянным хранилищем это для меня единственное стоящее решение.


Оффлайн
ecc83

флешка с постоянным хранилищем это для меня единственное стоящее решение.

Тогда нужно использовать для этого специально собранные дистрибутивы. Например мне нравится Slax.

https://www.slax.org/el/

http://mirror.ppa.trinitydesktop.org/trinity-sb/cdimages/slax/

По ссылкам выше один и тот же дистрибутив с разным графическим окружением.

Устанавливать очень просто, из под Windows форматируется флешка FAT32, затем при помощи архиватора 7z распаковывается содержимое на флешку в каталог /slax. Потом заходишь на созданную флешку в папку /slax/boot и там нужно запустить файл bootinst.bat

После этого с этой флешки можно грузиться.

« Последнее редактирование: 21 Сентября 2018, 22:58:37 от ecc83 »


Оффлайн
Vitsliputsli

А с каких пор linux перестал работать с флешек? Работа с устройствами ввода/ввывода — это задача ядра, а оно одно (с определенными оговорками, конечно, но точно не в этом вопросе), так что по-большому счету без разницы что за дистрибутив.

Сообщение об ошибке: /usr/sbin/grub-probe: ошибка: не удалось получить канонический путь «/cow.»

Я так понимаю загружаетесь в систему восстановления, тогда попробуйте переключиться через chroot в созданную систему и там уже сгенерировать конфигурацию grub.


Оффлайн
Slasher40

попробуйте переключиться через chroot в созданную систему и там уже сгенерировать конфигурацию grub.

Можно по подробнее с этого момента, куда нажать и что сделать?


Оффлайн
Vitsliputsli


Оффлайн
AnrDaemon

А по другому это ни как решить нельзя? Лишнего жесткого нет, да и приходится стартовать с разных компьютеров, а флешка с постоянным хранилищем это для меня единственное стоящее решение.

Поставьте в виртуалку.

Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…


Оффлайн
ecc83

куда нажать и что сделать?

Нажать никогда не поздно, главное, что бы это помогло

Пожалейте себя. Сделайте себе флешку за 15 минут по моей ссылке и останетесь здоровым и счастливым человеком.
Если же начнёте с перестановки ядра, то это у вас надолго.


  • Печать

Страницы: [1]   Вверх

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

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

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

Я пытался установить с DVD, но он зависает из-за ошибки «Out ofquency». Поэтому мне пришлось адаптироваться к USB-загрузке. Но мой компьютер не является загрузочным USB, поэтому обходной путь — «Диспетчер загрузки Plop». Поэтому я делаю процедуру установки следующим образом:

  1. , начиная с CD-привода, на котором установлен plop.
  2. выбирая загрузку через USB в параметрах plop.
  3. загрузка начинается с USB.
  4. монитор в конце концов выдает ошибку «вне частоты»
  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 ГГц, 1 ГБ оперативной памяти, 10 ГБ HDD без ОС , монитор CRT LG StudioWorks (7 лет). Mobo Mercury P4 266a NDMx (865 эквивалентов). Вся система находится в отличном рабочем состоянии под XP, но она не загружается через USB, а все остальные устройства работают отлично.

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

задан
18 February 2014 в 20:53

поделиться

6 ответов

После загрузки с 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
grub-install /dev/sda # May not be required
update-grub2

ответ дан Nathan Kidd
18 February 2014 в 20:53

поделиться

Я знаю, это старая проблема, но у меня были те же самые проблемы сегодня с актуальной версией mint-linux (на базе ubuntu). Я нашел очень простое решение! :-) Снимите интернет-соединение во время первой установки. Это остановка загрузки несовместимых grub2. Обновите все после завершения установки.

ответ дан anonymous2
18 February 2014 в 20:53

поделиться

Это команда update-grub , которая выдаст вам ошибку при использовании ее с живого компакт-диска. Я столкнулся с подобной ситуацией, когда выполнял спасение GRUB. Также grub-install по какой-то причине не попал на мой путь, поэтому мне пришлось запустить его с помощью / usr / sbin / grub-install .

grub-install ] принимает параметр - boot-directory , чтобы настроить GRUB для загрузки в систему, отличную от той, которая работает в данный момент. Вот соответствующая страница руководства.

ответ дан aveemashfaq
18 February 2014 в 20:53

поделиться

Исправленное решение, основанное на приведенном выше коде

Приведенное выше решение не будет работать без проблем, поскольку оно монтирует загрузочный раздел в / (корень) файловой системы. Это, конечно, заставляет grub жаловаться на то, что / 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-диска Live boot Ubuntu и откройте терминал. Внутри наберите:

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, на этот раз с некоторыми необходимыми папками, необходимыми для grub и уже созданными вашим живым диском Ubuntu:

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

Установка завершена. Об ошибках не сообщалось.

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

update-grub2 /dev/sda

Теперь вы можете безопасно перезагрузиться и снова увидеть хорошо известное меню загрузки.

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

ответ дан Tim B.
18 February 2014 в 20:53

поделиться

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

mount

, или

parted -l

, или

fdisk /dev/sda

, и введите p, чтобы вывести список разделов. найдите тип 83.

(Если у вас Fedora, вам, возможно, придется использовать команды «vgs» и «lvs», а если у вас есть mdraid, вам, возможно, придется «cat / proc / mdstat» или mdadm -А -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

Is это твой драйв? Круто!

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 …

ls
ls (hd0,1)/
ls (hd0,1)/boot
configfile (hd0,1)/boot/grub.cfg

или, может быть, это сработает:

grub-mkconfig -o /mnt/boot/grub/grub.cfg

Ваши пути, конечно, могут отличаться, поэтому просто играйте с этими командами, пока не увидите, что где и что происходит.

Это может быть признаком неминуемого отказа жесткого диска в худшем случае, а в лучшем случае может быть просто флагом раздела или загрузочным файлом, который был случайно перезаписан.

ответ дан Dagelf
18 February 2014 в 20:53

поделиться

Та же ошибка. Единственная проблема заключалась в том, что / cow все еще была установлена ​​на /.

Маленький sudo umount / cow сделал свое дело.

ответ дан Simon Lejoly
23 November 2019 в 00:02

поделиться

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

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

Понравилась статья? Поделить с друзьями:
  • Ошибка не удалось получить доступ к сайту
  • Ошибка не удалось получить доступ к рекомендациям
  • Ошибка не удалось получить данные делимобиль
  • Ошибка не удалось получить данные газпромбанк
  • Ошибка не удалось подключиться к службе rockstar