/ cowの正規パスの取得に失敗しました


43

私はかなり長い間Ubuntu 12.10をインストールしようとしています。今、私は次のような状況にあります。

私は完全にUbuntu専用のPCと10GBのHDDを持っているので、Wubiとデュアルブートのオプションはありません。

DVDからインストールしようとしましたが、「Out of frequency」エラーでスタックしています。そのため、USBブートオプションに適応する必要がありました。しかし、私のPCはUSBで起動できないため、回避策は「Plop Boot Manager」です。だから私は次のようにインストール手順をやっています:

  1. plopがインストールされているCDドライブから開始します。
  2. plopオプションでUSBブートを選択します。
  3. 起動はUSBから始まります。
  4. モニターは最終的に「周波数不足」エラーを出します
  5. ターミナルを取得するには、Shift+ Alt+ F1を押します。
  6. でグラブを開き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、OSなしの10 GB HDD、モニターCRT lg StudioWorks(7歳)。Mobo Mercury P4 266a NDMx(865相当)。システム全体はXPで完全に動作状態にありますが、USBブート不可であり、他のすべてのデバイスは完全に動作しています。

次に何をすべきですか?


お使いのコンピューターには、Ubuntuを実行するための推奨最小システム要件がありますか?RAMが1GB未満のマシンに12.04をインストールする際に問題が発生しました。
CSキャメロン

はい、システムの仕様を質問に追加しました。
ulkaNCST

askubuntu.com/questions/207663/…試してみる価値があるかもしれません。
リンツウィンド

5
最初にハードドライブをいくつかのフォルダにマウントし、/mnt次にchrootにマウントします/mnt

回答:


30

UbuntuライブCD(試用版14.04および16.04)から起動した後、grubパーティションに対してupdate-grub chroot'edを実行することでこの問題を回避することができました。(/dev/sda1grubをインストールしたパーティションを以下に置き換えます。すべてのコマンドをルートとして実行します。)

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

2
マウントを実行しようとすると、エラーが発生します。NTFS signature is missing.これは奇妙です。NTFSではなく、Ext4である必要があるためです
。– Cerin

@Cerin、私は/ dev / sda1が私にとって正しいパーティションであったことを強調しますが、そのボリュームがNTFSであれば、明らかにあなたにとってはそうではありません。
ネイサンキッド

あなたのソリューションはわかりにくいです。最初の部分と最初の部分のchroot内から2番目の部分を実行する必要がありますか?または、最初の部分で行ったすべてを捨てて、2番目の部分だけを実行しますか?なぜ/ dev / sdaと/ dev / sda1の両方をマウントするのですか?
セリン

2
私はあなたの指示に従いましたが、ブートドライブには/usr/sbin/grub-probe: error: failed to get canonical path of '/boot'.自分の/bootパーティションしかなく、残りは他の場所にありました。
そり

1
grub-install /dev/sdaupdate-grubに追加を行う必要があり、それからうまくいきました!
キウ16

11

起動するはずのドライブを見つける

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 / sdaの代わりに/ dev / md0または/ dev / mapper / my-vgを使用します

それをマウントしてみてください

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が起動し、再起動してBIOSセットアップから適切な起動ドライブを選択した後、またはBIOSと必要に応じてESCまたはF12を押して、grubコマンドを使用して起動できます。 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
私のパーティションは好きではありませんでしたが、機能していませんでした-f。私が使用していた--force
RM

GRUBから起動するには、私のシステムで上記のように変更する必要がありました:( linux /vmlinuz root=/dev/sda1 つまりルートフォルダー)initrd /boot/initrd.img (つまり追加.img
ワーナー

6

上記のコードに基づいて修正されたソリューション

上記のソリューションは、ブートパーティションをファイルシステムの/(ルート)にマウントするため、問題なく完全に機能することはありません。もちろん、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パーティションを/(ルート)パーティションにコピーしてください。そのために、UbuntuライブブートDVDを使用してシステムを起動し、ターミナルを開きます。その中に入力:

sudo su
fdisk -l

使用しているパーティションを確認します。私の場合、sda1は約250MBの/ bootパーティションと約500GBのsda5です。以下のコマンドでこれらの値を使用します。

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

これで安全に再起動でき、よく知られているブートメニューが再び表示されます。

このソリューションは、物理サーバーから仮想マシンへの移行後に機能していた唯一のソリューションでした。誰かがこれが役に立つと思うことを願っています!


0

私はそれが古い問題であることを知っていますが、今日は実際のバージョンのmint-linux(ubuntuベース)でも同じ問題を抱えていました。私は非常に簡単な解決策を見つけました!:-)最初のインストール中にインターネット接続を切断します。これにより、互換性のないgrub2の読み込みが停止します。インストールが完了したら、すべての更新を行います。


0

同じエラーが発生しました。唯一の問題は、/ cowがまだ/にマウントされていたことです。

ちょっとしたsudo umount / cowでうまくいきました


-6

ライブCDから使用するときにエラーを表示するのは、update-grubコマンドです。私はグラブレスキューを行っていたときに同様の状況に直面しました。あなたが抱えている問題は、update-grubとgrub-installコマンドがライブcdで直接動作しないことです(理由はわかりません)。そのため、コマンドがある/ usr / sbinに移動して、そこからコマンドを実行する必要があります(つまり./update-grub)。


いいえ、@ green7が言ったように、ハードディスクをマウントしてchrootする必要があります。
psusi

私の方法も機能します。それを試してみてください。そのシンプルな
aveemashfaq

1
メソッドがありません。/ usr / sbinはすでにパス上にあるため、そこにcdする必要はありません。ライブCDからgrub-installとupdate-grubを直接実行することはできません(前述のとおり)。ハードにインストールされたOSではなく、ライブCDである現在のシステムを起動するようにgrubをセットアップしようとします。ドライブ。
psusi

もちろん、これは機能しません。「/ cowの標準パスを取得できません」というエラーが表示されます。そして、/ usr / sbinへのcd-ingに関するもの...ああ、少年。
dan3 14

やってみて それは私のためにすべての時間を働いていた
aveemashfaq
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.