apt-get の更新後、Kali Linux VM で apt-get を正常にアップグレードして再起動し、いくつかのインストールを完了し、grub 回復モードに入りました。
グラブ構造について>
エルエス、返品:
(hd0) (hd0,msdos1) (hd0,msdos5)
置く、返品:
cmdpath=(hd0)
prefix=(hd0,msdos1)/boot/grub
root=hd0,msdos1
私は走ったエルエス(hd0)/ boot、(hd0、msdos1)/ boot、(hd0、msdos5)/ boot、および(hd0、msdos1)でのみ起動可能な画像結果を確認します。
Linuxのインストール、次の grub エラーを返します。
symbol 'grub_file_filters' not found
グラブがどこで見えるか見たかったです。カリ研究所返品:
/boot/grub/i386-pc/kali.mod not found
だから、エラーが発生する前にLinuxモジュールを見つけたようです。
調査では、このエラーがファイルシステム/ USBデバイスに関連していることがわかりましたが、これは仮想イメージなので(そして私はVirtualBoxを使用しています)、どうすれば解決するのかわかりません。
問題なく最初から再インストールしましたが、このエラーとそのエラーの意味/修正方法が気になります。
どんな洞察力をありがとう
追加情報: これは、仮想マシンの起動時に上記のlsコマンドの一部を実行した後に画面に表示される出力です。
error: symbol ‘grub_file_filters’ not found.
Entering rescue mode...
grub rescue> ls
(hd0) (hd0,msdos5) (hd0,msdos1)
grub rescue> ls (hd0)
(hd0): Filesystem is unknown.
grub rescue> ls (hd0,msdos5)
(hd0,msdos5): Filesystem is unknown.
grub rescue> ls (hd0,msdos1)
(hd0,msdos1): Filesystem is ext2.
grub rescue> ls (hd0)/boot
error: unknown filesystem
grub rescue> ls (hd0,msdos5)/boot
error: unknown filesystem
grub rescue> ls (hd0,msdos1)/boot
./ . ./ System.map-4.18.0-kali2-amd64 config-4.18.0-kali2-amd64
initrd.img—4.18.0-kali2-amd64 vmlinuz-4.18.0-kali2-amd64
grub/ config-4.19.0-kali5-amd64 vmlinuz-4.19.0-kali5-amd64
System.map-4.19.0-kali5-amd64 initrd.img-4.19.0-kali5-amd64
grub rescue>
答え1
OSXで私に役立ったのは、Daniel Simonの答えとddburrjrのコメントを組み合わせたものです。
- 公式Kali Linux Webページから新しい.isoイメージをダウンロードしてください。
- VirtualBoxを起動し、Kali Linux仮想マシンの設定を開きます。ダウンロードしたisoイメージを「ストレージページ」に仮想CDとして追加します。どのように? 「コントローラ:IDE」を選択し、右側のCDボタンを押してから「ディスクの選択」をクリックし、ダウンロードした.isoファイルを選択します。
- 起動時にF12を押し、次に「C」を押してCD_ROMから起動します。
- .isoファイルからKali Linuxを実行するには、起動メニューから「Live(amd64)」を選択してください。
- 次のガイドラインに従ってください。https://www.youtube.com/watch?v=5spKO02G5v4
- 完璧! Kali Linuxは仮想ハードディスクから再起動します。
答え2
ArchLinuxでGRUBインストールを更新した後(grub-mkimageコマンドを使用)、手動で作成されたgrubイメージを起動しようとしたときに同様の問題が発生しました。私の場合、GRUBを/ bootパーティションに再インストールすると問題が解決しました。
オペレーティングシステム全体が起動しないため、現在のブートローダインストールをバックアップし、そこからブートローダを再インストールした後(たとえば、元の設定ファイルが保存されるように)、Kaliのライブイメージを起動することをお勧めします。
この問題が発生する可能性のある理由の1つは、GRUBが以前のバージョンのGRUBであるモジュールをロードしようとしていますが、イメージがロードされないためです。
指示する:
1. Kali Linux公式ウェブサイトから新しい画像をダウンロードします。
2. VirtualBoxを起動し、Kali Linux仮想マシンの設定を開きます。
2.1ダウンロードしたISOイメージを「ストレージページ」に仮想ディスクとして追加します。
2.2仮想マシンがCDから最初に起動するように、システムタブで起動順序を変更します。
3. 仮想マシンの電源を入れ、ライブモードでイメージを起動します。 4.ブートパーティションをフォルダ(たとえば/ mnt)にマウントし、grubフォルダを別の宛先にコピーします。ブートパーティションがない場合、ファイルはプライマリパーティションのブートフォルダに配置する必要があります。この場合は、デフォルトのパーティションをマウントし、手順5と6をスキップしてください。
5. ブートパーティションを再マウント解除し、プライマリパーティション(/home、/etc、/boot、...フォルダを含む)をこのポイントにマウントします。
6. プライマリパーティションのマウントポイントの下にある /boot フォルダにブートパーティションを再マウントします。構造は次のようになります。
/mnt/ (mount folder of main partition)
etc/
home/
boot/ (mount folder of boot partition)
grub/
(other boot files)
(other folders)
- このコマンドを使用して、ルートディレクトリをインストールされているオペレーティングシステムファイルに変更します
chroot
。 - コマンドを使用してgrubを再インストールしてください
grub-install /dev/sdX
。ここで、XはKali Linuxがインストールされているデバイスの記述子です。--boot-directory
ルートディレクトリをインストールされているオペレーティングシステムに変更したため、パラメータを指定する必要はありません。追加のパラメータを指定する必要がある場合は、grub-installコマンドのマンページを確認してください。 grub-mkconfig -o /boot/grub/grub.cfg
grubの新しい設定ファイルを作成するには実行してください。このコマンドはKali Linuxのインストールを検出する必要があります。- 変更されたルートディレクトリを終了し、すべてのパーティションをアンマウントします。
- 仮想マシンを終了します。
- 起動順序を以前の設定に戻すか、ディスク起動を無効にします。
- 仮想マシンを起動します。すべてが期待どおりに機能すると、Kali LinuxとGRUBは通常どおり起動します。
インストールされていないか、コマンドが見つからない場合は、まずsudo
実行を試してみて、まだ存在しない場合はを使用してインストールしてみてくださいapt-get install [name]
。
重要なヒント:
現在私は上記のようにArchLinuxを使用しているので、未知の設定で他のディストリビューションを使用してgrubを再インストールする方法の詳細なドキュメントを提供することは困難です。
実行する前に、使用しているコマンドを調べて、そのコマンドが設定とうまく機能していることを確認することをお勧めします。
それ以外にも仮想マシンを使用しているので、この手順に従う前にスナップショットを作成することをお勧めします。
答え3
申し訳ありません。コメントできないので、Daniel Simonの答えがうまくいきます!しかし、追加のインストール後に..私のディストリビューションはUbubtu Serverであり、18.04から20.04にアップグレードした後も同じエラーが発生しました。
私のVPSにはリカバリモード(別のドライブ(または他の場合はUSB)から起動)があり、ブートパーティションがプライマリパーティション内にあるため、手順(手順5と6ではありません)に従いました。ステップ7(chroot)の前に、次のように/ dev、/ sys、および/ procをマウントしたいと思います。 (基本パーティションを最初にマウント)
# mount /dev/vdb1 /mnt (in my case the main partition to mnt dir)
# mount --bind /dev /mnt/dev
# mount --bind /proc /mnt/proc
# mount --bind /sys /mnt/sys
その後、ステップ7に進みます。 chroot