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
Vastaa
Toimi seuraavasti:
-
Käynnistä Live-Linux-istuntoon.
-
Asenna asennetun käyttöjärjestelmän
/
-osio/mnt
sudo mount /dev/sda6 /mnt
-
Määritä
chroot
-ympäristö:sudo chroot /mnt
-
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änytchroot
-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.
sda6
? Onko vastauksestani täällä apua?/cow
näyttää viittaavan Kopioi kirjoitettavaksi -tiedostojärjestelmä, joka on asennettu kohtaan/
käynnistettäessä CD-levyltä tai USB: ltä