
私はKali LinuxとWindows 7を正常にダブルブートしました。したがって、セカンダリディスクから起動することを選択すると、GRUBはそこから場所を見つけてKaliを選択でき、すべてがうまく機能します。問題は、USBスティックが接続されている場合にのみ機能することです。奇妙に聞こえますが、本当です...
Kaliをインストールし、Rufusと一緒に画像をUSBスティックに焼きました。問題なくインストールがスムーズに行われましたが、「A」USBスティックを挿入した場合にのみKaliを起動できます。 「THE」USBスティックを挿入した場合ではなく、すべてのUSBスティックを使用できるという意味ではありません。 USBメモリースティック、他のことを試してみましたが、問題になりませんでした。 1つしかない場合は、USBスティックが接続されています(2番目のメモリースティックを接続しても機能しません)。同様のエラーが発生します。それにsdb3 not found
。この問題を解決しました。 Kaliは常にUSBスティックをにマウントし、sda
Kaliパーティションを持つパーティションは開いており、sdb
他のディスクの他のパーティションは開いていますsdc
(Kaliの場合は気にしないでください)。今、Kaliがその下にあるパーティションを見つけようとしているようですが、sdb3
USBスティックが接続されていない場合ですsda3
。
私の言葉がどういう意味か理解してください。
以下はディスクの写真ですsdb
。
Kaliはいつもで起動を試みているようですがsdb
、USBスティックを挿入するとsdb
USBスティックがない時と状況が異なります。
これをどのように変更できますか?識別子を参照sdb
し、実際にディスク自体を参照しない理由を知りたいです。
それでは、起動時にUSBスティックを挿入する必要がないようにこの問題を解決するにはどうすればよいですか?
編集する:の出力はlsblk
次のとおりです。
正直な
sda1
ところ、デバイスを完全にフォーマットしてから何が起こっているのか少し混乱しています...
編集2:grub install を実行すると、次のエラーが発生します。
出力 parted -l
Model: SanDisk Extreme (scsi)
Disk /dev/sda: 62.7GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 32.8kB 3020MB 3020MB primary boot, hidden
2 3020MB 3021MB 721kB primary
Model: ATA WDC WD30EZRX-00M (scsi)
Disk /dev/sdb: 3001GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 20.5kB 134MB 134MB msftres
2 135MB 2162GB 2162GB ntfs Basic data partition msftdata
3 2162GB 2980GB 818GB ext4 Basic data partition msftdata
4 2980GB 2992GB 12.6GB linux-swap(v1) Basic data partition msftdata
5 2992GB 3001GB 8389MB ntfs Basic data partition msftdata
Model: ATA WDC WD5000AAKX-0 (scsi)
Disk /dev/sdc: 500GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 500GB 500GB primary ntfs boot
[ -d /sys/firmware/efi ] && echo UEFI ||
簡単にBIOSを出力してみてください。
答え1
わかりました。
要約:2つのハードドライブ。 1つはgpt-schemaを使用し、2. ms-dosを使用します。
gptパーティションテーブルを含むハードドライブにBIOSモードでインストールし、その上にgrubをインストールするには、いわゆるBIOS ブートパーティション
もう1つの機会は、Windowsブートローダがあるドライブにgrubをインストールし、このドライブをBIOSの最初のブートメディアとして設定することです。
これ
Model: ATA WDC WD5000AAKX-0 (scsi)
Disk /dev/sdc: 500GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 500GB 500GB primary ntfs boot
私の言葉は。
答え2
Grubメニューを表示するにはF11を押す必要がありますが、WindowsドライブにGrubがインストールされているように見えます(起動できない他のUSBを使用してGrubから起動でき、Windowsディスクには起動フラグがある唯一のディスクであるため)。 )。
次のコマンドを使用して grub の位置を確認できます。グルセルマンズスクリプト。
USBを接続せずにKaliを起動するには、grubメニューからgrub shellと入力し(grubメニューが表示されたらcを押して)、説明に従ってください。ここ。
あなたの情報によると、USBが接続されておらず、kaliインストールがgrubによって(hd0,3)呼び出されるsda3にあると仮定すると、grubシェルの起動順序は次のようになります。
set root=(hd0,3)
linux /vmlinuz root=/dev/sda3
initrd /initrd.img
boot
正常に入力したら、/etc/default/grub/configポリシーが説明されているようにUUIDの使用を禁止していることを確認してください。ここ次に grub を再インストールします。起動可能なWindowsドライブ(現在のUSBが接続されていないsdb)にのみインストールを許可できます。
再起動する前に
cat /boot/grub/grub.cfg
そして、grub.cfgがUUIDを使用していることを確認してください。そうでない場合は、すでに指摘したとおり、後でUSBを接続したときに起動の問題を回避するには、この問題を解決する必要があります。
作業項目を編集して新しい Grub インストールが中断されるのを防ぐには、 grub.cfg に新しい UUID 設定メニュー項目を追加するのが最善です。
まず、sda3のUUIDを取得します。
sudo blkid
次に、Kali の既存の grub メニュー項目の内容を新しい grub メニュー項目にコピーして編集し、/dev/sda3 を対応する UUID に置き換えます。これらの編集にはgrub-customizerを使用し、他のツールもありますが、grub.cfgを手動で編集することはお勧めできません。
完成したカスタム項目は次のようになります。
#calls to insmod will be the ones you copied, these are mine
insmod part_gpt
insmod ext2
#this is your main edit
search --no-floppy --fs-uuid --set=root YourSda3Uuid
linux /boot/vmlinuz-WhateverVersion root=UUID=YourSda3Uuid ro quiet
initrd /boot/initrd.img-WhateverVersion
再起動してテストしてみてください。失敗した場合は、編集されていない(メニューの上部?)grubエントリを使用してKaliで再起動し、構文を確認してください。GRUBマニュアル
最後の一つ。
/に現在vmlinuzとinitrdへのリンクがある場合は、メニュー項目を次のように変更します。
linux /vmlinuz root=UUID=YourSda3Uuid ro quiet
initrd /initrd.img
カーネルが更新され、リンクが変更されると、メニュー項目は新しいカーネルを選択します。