Yritän asentaa grubia uudelleen USB-asemalta. Suoritan seuraavaa :

sudo mount /dev/sda6 /mnt sudo grub-install --root-directory=/mnt /dev/sda 

Saan seuraavan virheen:

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

Voiko joku selittää virheen ja miten se ratkaistaan?

Muokkaa

Yritän korjata rikki kaksoiskäynnistysjärjestelmä, joka toimii Linux-minttua sisältävältä USB: ltä.

Kommentit

  • OK, tämä muokkaus on askel oikealle suunta. Oletetaanko, että sinulla on jo Linux-järjestelmä asennettuna? Käynnistetäänkö se osoitteesta sda6? Onko vastauksestani täällä apua?
  • FWIW, /cow näyttää viittaavan Kopioi kirjoitettavaksi -tiedostojärjestelmä, joka on asennettu kohtaan / käynnistettäessä CD-levyltä tai USB: ltä

Vastaa

Toimi seuraavasti:

  1. Käynnistä Live-Linux-istuntoon.

  2. Asenna asennetun käyttöjärjestelmän / -osio /mnt

    sudo mount /dev/sda6 /mnt 
  3. Määritä chroot -ympäristö:

    sudo chroot /mnt 
  4. Olet nyt väärennetyssä Linux-asennuksessa, joka käsittelee /mnt -tietoa nimellä / . Tämä tarkoittaa, että kaikki GRUB-tiedostoon tarvittavat tiedostot ovat /boot -kohdassa, missä järjestelmä odottaa niiden olevan, ja voit asentaa GRUB aivan kuin olisit tosiasiassa käyttänyt asennettua järjestelmääsi:

    sudo update-grub sudo grub-install /dev/sda 

Käynnistä nyt uudelleen ja sinun pitäisi nähdä GRUB-valikko normaalisti.

Kommentit

  • I ’ yritän asentaa USB-laitteelta . yritin millään tavalla myös ilman asennusta – sama virhe. voitko selittää virheen?
  • @elyashiv muokkaa kysymystäsi ja selitä mitä yrität. Yritätkö pelastaa rikki järjestelmän? Käynnistätkö live-järjestelmän USB: ltä? Jos näin on, kerro meille . Mitä käyttöjärjestelmää käytät? Mikä saa sinut ajattelemaan, että GRUBilla on root-device -vaihtoehto ja mitä uskot tämän vaihtoehdon tekevän? Oletko määrittänyt chroot -ympäristön? Aina kun esität kysymyksen, sinun on selitettävä tarkalleen, mitä t yrität tehdä. Voimme ’ arvailla.
  • Hups, tarkoitin -root -hakemisto
  • @elyashiv siellä ’ eivät ole myöskään --root-directory. Mene lukemaan vastaukseni täältä , jossa selitetään, miten grub asennetaan uudelleen.
  • katso ensimmäinen vastaus täällä

vastaus

Jos grub sanoo, ettei se pysty ratkaisemaan jonkun kanonista polkua , se tarkoittaa, että sitä ei ole tai realpath() epäonnistui.

Yritä tässä tapauksessa:

$ realpath /cow $ ls -la /cow 

Jos molemmissa komennoissa sanotaan ”tiedostoa tai hakemistoa ei löydy”, sinun on luotava sellainen.

Jos toinen komento toimii, mutta ensimmäinen ei, tarkista miksi realpath() ei toimi. Yksi syistä voi olla, että /proc ei ole asennettu. Joissakin libc: n toteutuksissa /proc/self/fd käytetään tiedoston ensisijaisen polun hakemiseen.

Kommentit

  • Minulla on ensimmäinen komento, mutta ei toinen.
  • MINU: root @ ubuntu: / # realpath / cow TERMINAL: / cow ME: # ls -la / cow TERMINAL: ls: mahdotonta pääsy ’ / cow ’: Ei tällaista tiedostoa tai kansiota (karkeasti käännetty).

vastaus

Minäkin saan tämän virheen, enkä usko, että se tapahtuu juuressa.

Tausta

Luulen, että tämä on silloin, kun systemd ei löydä polkua, koska se on asennettu hakemistoon. Ero on siis siinä, kun määrität chrootin, jo määrität pääsyn laitteistoon, mukaan lukien asemat.

Vaikka voit määrittää tämän käyttöoikeuden Systemd: ssä, mikä ei tarkoita sitä, että voit määrittää näiden asemien käyttöoikeudet samalla tavalla.

Esimerkiksi, minä loin tämän tiedoston:

/etc/systemd/system/[email protected]/override.conf 

Ja se sisältää s nämä asetukset:

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

Tämä ei silti toimi, kun käytetään grub-install /dev/sda tai update-grub USB: lle Pi: llä, joka on käynnistetty Debian Stretchillä. Jopa grub-uboot- ja grub-efi-arm -toimintojen käyttämisessä on edelleen virhe, grub-probe ei löydä kanonista polkua.

Ei vain, mutta vaikka update-grub näkee ja tietää, mitä käyttöjärjestelmät ovat, mutta mielenkiintoista on, että grub-install ei tunnistaa, että Debian-käyttöjärjestelmä on USB: llä.

Esimerkki

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# 

Mielenkiintoista, kun luon chrootin ja voin suorittaa update-grub, Vaikka olen käyttöjärjestelmässä, jonka käynnistin uudelleen USB-liitäntään, se ei näe omaa käyttöjärjestelmäänsä!

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:/# 

Se näkee vain Raspbianin. Tämä tapahtuu vain, kun yritetään asentaa ja päivittää GRUB säilön sisällä, mutta kun poistun chrootista.

Katso, miten se nyt toimii, koska en irrotanut chroot-hakemistoja:

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

Säilön ulkopuolelta olen mielessä, olen käynnissä tämä komento, jossa grub-uboot on asennettu Raspbianiin eikä Grubia USB: llä, joka sisältää debootstrapped Debianin.

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# 

Tämä ei tapahtuu käyttämällä jotakin epävirallisesti saatavana olevista kuvista Debian ARM: lle , mutta tämä on tietysti edelleen mukautus, jota ei vielä ole saatavana debootstrappingille.

Vianmääritys

Todellakin on aikoja, jolloin on parempi luoda polku. Ainoa seuraava (ja todennäköinen) mahdollisuus on yksinkertaisesti kirjoittaa GRUB. Ja aion lukea juuri tältä sivulta.

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

Toinen asia, jonka haluan jakaa tästä asiasta, on ratkaisu, joka saattaa toimia, mutta ymmärrän, että microSD-kortit ovat hyvin herkkiä. Olen rakentanut omia Linux-kuviani ja oppinut tämän nopeasti. Parasta on käyttää Qemua aina kun mahdollista, mutta yritä tyhjentää vanha osiotaulukko kokeilemalla sgdisk --zap-all -asemaa.

sgdisk --zap-all /dev/sdd 

Itse asiassa joskus jos virhe antaa ensimmäisen kerran ja se on ei Vain luku -virhe, voit suorittaa sen uudelleen ja lopulta kaikki osiotaulukot ovat uusia tai vanhoja.

Ja voit käyttää Qemua jäljittelemään Vadelmaa Pi tavallisessa AMD / Intel-pohjaisessa tietokoneessa. Suosittelisin sitä. Tiedän, että tämä on enemmän tietoa kuin alkuperäinen viesti, mutta mielestäni tämä virhe todennäköisesti johtuu. Se on säilön ikä.

Vastaa

Kirjoitetun perusteella näyttää siltä, että yrität asentaa GRUB / dev / sda. Et halua asentaa levyä.

Olet todennäköisesti etsimässä: grub-install /dev/sda

GRUB-manussivu viitteeksi, tai voit man grub-install järjestelmästäsi: http://linux.die.net/man/8/grub-install

Kommentit

  • Kirjoitin jo grub-install -komennon (dev.sda1: ssä), mutta lohkoista puhuttaessa tapahtui virhe. Ja sain ” lehmä ” -virheen ” grub-install –recheck –root-hakemisto = / mnt / dev / sda1 ” -komento.

Vastaa

Kaikille, jotka kamppailevat tämän kanssa ja jotka yrittävät käyttää live-USB: tä tai muuta chroot-tapaa grubin asentamiseen tai asentamiseen – olen käsitellyt tätä muutaman kerran ja unohtanut dokumentoida sen aikaisemmin, vaikka aikoinakin .

Ongelma, jonka kohtaat grub, ei pääse polkuun, johon viitoit joko lähteenä (/ boot) tai kohteena (näkevätkö järjestelmäsi ja chroot ?) tai molemmat. Kun valmistaudut chrootiin, luot sidontakiinnikkeitä, joihin pääsee chroot-ympäristössä, tai teet sen chrootissa käyttämällä mount -t. Verkossa on niin monta opasta, jotka tekevät sen kummallakin tavalla.

Sinun on varmistettava, että sidot / dev tai vain tietyt osiot, jotka sisältävät käynnistystiedostot / boot (esim. / Dev / sda1) . / boot on joko erillinen osio tai hakemisto hakemistossa / Chroot tarvitsee pääsyn asemaan, jonka asennat (uudelleen) grubiin, niin tee niin fdisk -l chrootissa varmistaaksesi, että näet laitteen luettelossa. Huomaa myös, että jos sinulla ei ole erillistä käynnistysosiota, mutta sinulla on käynnistyshakemisto / root-tiedostossa, jossa on käynnistystiedostot (ei vain kiinnityskohta), sinun on asennettava vain root-osio. Minun ei tarvitse liittää mitään tiedostoon / root / boot.

Sinun on myös varmistettava, että sidot proc-tiedostojärjestelmän ja sys-tiedostojärjestelmän, mutta jokaisessa näkemässäni oppaassa on nämä kaksi. Olen juuri nähnyt. / dev menetti joskus. Saattaa olla tapauksia, joissa et tarvitse sitä, mutta en tiedä niistä.

tl; dr: varmista, että sidot mount / dev

Kommentit

  • Miksi puhut chroot -kohdasta, kun kysymystä ei ’ t ole chroot”?
  • OP kertoo ”, joka kulkee USB-linjasta, joka sisältää Linux-minttua ”. Se on chroot.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *