web-dev-qa-db-ja.com

外付けHDDからgrubブートローダーを取り除く方法

しばらくの間、OSとしてLinuxUbuntuを試しました。他のOSと同様に、Linuxには欠点があり、そのいくつかは私にとって大きな問題です。そこで、Windows7に戻りました。

試用中にシステムが変更されないようにするために、Ubuntuを外付けHDDにインストールしました。私はこのドライブをポータブルワークスペースとして使用していたので、GIMP、Aseprite、Audacity、PixiTracker、SunVox、GoDotゲームエンジン、およびいくつかのビデオゲームもインストールしました。これらはすべてPortableApps.comプラットフォームでバインドされています。

ドライブからUbuntuを削除したとき、完全な再フォーマットを含む多くの手順を実行しました。しかし今、ドライブをUSBポートに接続した状態でコンピューターを起動しようとすると、これが発生します。

error unknown filesystem entering rescue mode

ドライブを調べたところ、システムでもブートでもないパーティションが1つだけ見つかりました。そのため、痕跡は残っていませんが、Grubはどういうわけか以前のインストールを覚えています。

誰かがそれを取り除く方法を知っていますか?ツールを使用してGrubをWindowsブートローダーに置き換えるための推奨事項を読みましたが、外付けHDDにanyブートローダーをインストールしたくありません。

2
Jacob

1.まず、BIOSにログインし、起動順序で最初のドライブがプライマリシステムディスク(USB起動可能デバイスやCDROMではない)であることを確認します。コンピュータのブランドによっては、オンデマンドで起動デバイスを選択する可能性もあります(通常はを押して F12 ボタン)ここでブートデバイスを選択できます。この場合、USBドライブではなくプライマリハードドライブを選択します。
問題が解決した場合は、以下の手順2、3に従って、外付けハードドライブのGRUB、それ以外の場合はUbuntuがインストールされているGRUB onシステムディスクにアクセスするには、このトレッドで説明されている@harrymc answer に従って、システムディスクからGRUBのブートローダーを削除する必要があります。

2.外付けドライブがMBRとしてフォーマットされている場合、この手順でGRUBのブートローダーが削除されます。
LinuxベースのLiveCDを実行し( SystemRescueCd が適切な候補です)、ブートローダーを消去します
ターミナルからのddコマンドを使用

  dd if=/dev/zero of=/dev/sdX bs=446 count=1

sdXを、扱いたいcorrect(!!!)ドライブに置き換えてください。

SystemRescueCd を使用すると、startxと入力し、デスクトップが読み込まれるまで待ってから、menu-> system run "Show filesystem"を実行して、grubを削除する必要があるドライブ名を見つけます。

3.外付けハードドライブがGPTとしてフォーマットされている場合は、GPTがブートローダーとパーティションテーブルを保持しているセクター1(ゼロベースのカウント)をクリアする必要があります。

または、手順2で説明したddコマンドを使用して、MBRかGPTかに関係なく、外付けハードドライブ上のすべてのブーローダーセクションをクリアできます。

# Clear everything. Make sure sdX is your external hard drive (!!!)
dd if=/dev/zero of=/dev/sdX count=1 bs=16MB

パーティションテーブルとそのデータを破棄するので、これを行う前に必ず外付けドライブからファイルを保存してください。

GRUBのブートローダーの削除が完了したら、[コントロールパネル]-> [管理ツール]-> [コンピューターの管理]に移動し、左側のパネルから[ストレージ]-> [ディスクの管理]を選択し、外付けハードドライブを選択して右クリックし、最後にフォーマットします。

4
Alex

外部ディスクを再フォーマットしたので、問題はそれではありません。したがって、Grubはシステムディスクにインストールされ、最初に外部ディスクから起動し、次にWindowsから起動するように設定されているようです。

ドライブを接続した状態で起動しようとすると、GrubがUbuntuブートコードを含むと思われる最初のパーティションにアクセスしますが、代わりに、おそらくNTFSとしてフォーマットされたWindowsパーティションを見つけて理解できません。したがって、「エラー不明のファイルシステム」というメッセージが表示されます。ドライブが接続されていない場合、GrubはWindowsから静かに起動します。

あなたの問題は今やWindowsとLinuxのデュアルブートを元に戻すという古典的な問題です。 2つのオプションがあります。ブートオプションとして外部ディスクのみを削除するか、ブートコードをWindowsブートローダーに置き換えます。もちろん、ドライブを接続した状態で起動しないという3番目のオプションもあります。

最も簡単な解決策は、 デュアルブート修復Windows 1 の無料ツールを使用することです。ここで、「自動修復」はWindowsへの起動を修正します。

ブート構成としてUbuntuを削除するだけの場合は、AskUbuntuの記事を参照してください。
GrubをアンインストールしてWindowsブートローダーを使用する

Windowsからの起動中に問題を手動で修正するには、たとえば次の投稿を参照してください。
WindowsからWindows 10ブートローダーを修正する方法

2
harrymc

レガシーGRUBを使用している場合、最も速く最も効率的な方法は、私が示したthirdの例です。

最初の例:
外付けハードドライブでWindowsが実行されていないため、Windowsのfixmbrオプションを使用できません。試して実行できるのは、Ubuntu Boot Repairユーティリティを外付けハードドライブ内のライブブートで使用して、ブートセクターを修復することです。

  1. 外付けハードドライブからすべてのデータをバックアップし、場合によってはそこから移動します。
  2. UbuntuライブISOを外付けハードドライブ(ネットワークインストーラーではない)にダウンロードして書き込みます。
  3. 外付けハードドライブから起動します(外付けハードドライブでUbuntuを起動します)。
  4. ターミナルからboot-repairユーティリティをインストールします。
Sudo add-apt-repository ppa:yannubuntu/boot-repair
Sudo apt-get update
Sudo apt-get install boot-repair
  1. Boot Repairを起動し、Recommended repairオプションを使用します。このshould外付けドライブのマスターブートレコードを修正して削除するGRUBそれから。

  2. 次に、Windowsの起動に進み、外付けハードドライブを接続した状態で、そこからディスクの管理を開きます。

  3. 外付けハードドライブ上のすべてのパーティションを削除し、再フォーマットします。すべてのパーティションを適切に消去し、適切にフォーマットしてください。クイックフォーマットは使用しないでください。

  4. すべてのファイル/データを外付けハードドライブに戻します。

関連するQ&Aを参照してください。
buntuを削除してWindowsをオンにする方法は?


2番目の例:
これがお役に立てば幸いですが、外付けハードドライブが接続されているときに起動する必要があるのはなぜですか。 after起動後にプラグインするだけです。
削除を試みずにこれを修正する別のオプションGRUBは次のとおりです。

  1. 外付けハードドライブをコンピューターに接続します。
  2. 起動してBIOSセットアップに入ります。
  3. 常にgrubレスキューモードに入ると説明したので、外付けハードドライブが接続されている間、GRUBが起動プロセスで優先されます。MakeWindows Boot Manager起動または完全に削除する最初のオプションGRUB起動オプションとして。これはUSB外付けハードドライブであるため、これが発生している可能性がありますCD/USBから起動する場合も最初のオプションです。
  4. 設定を保存して再起動します。

このようにして、外付けハードドライブが接続されている場合でも問題なくWindowsを起動できます。GRUBそのドライブに存在することは問題ではないはずです。

BIOSセットアップでUSBまたはCDからの起動を無効にする方法 を参照してください。


3番目の例:
注:以下は、Legacy(MBR)GRUBEFI GRUBには使用しないでください。

これらの2つが役に立たないか、ニーズを満たさない場合は、別の方法があります。

GRUB Image Documentationは、GRUBのブートイメージについて次のように述べています。

PC BIOSシステムでは、このイメージは開始するGRUBの最初の部分です。マスターブートレコード(MBR)またはパーティションのブートセクターに書き込まれます。PCブートセクターのためは512バイトで、この画像のサイズは正確に512バイトです。

したがって、外付けハードディスクの最初の512バイトをゼロで上書きすることにより、ブートレコードまたはGRUBからクリーンなドライブを取得できます。

これをする:

  1. ライブUbuntuISOをダウンロードし、外付けハードドライブまたは可能であれば別のUSBドライブ。ただし、次の手順では、外付けハードドライブを接続する必要があることに注意してください。
  2. ライブUbuntu環境で起動し、ターミナルを開きます。
  3. lsblkを使用して、外付けハードドライブに対応するデバイスを見つけます。外付けハードドライブから起動する場合は、最初のパーティションを/にマウントする必要があります。パーティションではなく、ディスク全体へのパスが必要であることに注意してください。 /dev/sdbnot/dev/sdb1
  4. 最初の512バイトを上書きします。
Sudo dd if=/dev/zero of=[path_to_external_hard_drive] count=1

これにより、count=1ファイルから1ブロック(/dev/zero)がコピーされ、of=の後に指定されたパス(外付けハードドライブである必要があります)に書き込まれます。それは最初のセクターから始まります。 ddのほとんどのバージョンでは、デフォルトのブロックサイズは512バイトであるため、指定する必要はありません。ただし、安全を確保したい場合は、bsを使用してブロックサイズを指定できます。

Sudo dd if=/dev/zero of=[path_to_external_hard_drive] bs=512 count=1

bsは、ブロックサイズをバイト単位で指定します。 /dev/zeroは、無限の量の文字を含むファイルです( wikipedia から):

/ dev/zeroは、Unixライクなオペレーティングシステムの特別なファイルであり、そこから読み取られるのと同じ数のヌル文字(ASCII NUL、0x00)を提供します。

したがって、コマンドは/dev/zero512バイト1ブロックをコピーしますゼロでいっぱいの1ブロックを意味します)そしてそれを指定されたパスに書き込みます。 /dev/sdbが外付けハードドライブであると仮定した場合、コマンドの完全な例を次に示します(外付けハードドライブであることが確実でない限り、/dev/sdbを使用しないでください):

Sudo dd if=/dev/zero of=/dev/sdb bs=512 count=1

この場合、外付けハードディスクを再フォーマットする必要はなく、ファイルを移動する必要もありませんただし、ファイルの破損が発生する可能性があるため、データのバックアップを作成することをお勧めします。 ファイルの破損が発生した場合は、外付けハードディスクを再度フォーマットする必要がある場合があります。ただし、これを実行すると、ディスクからMBR/GRUBが解放されます。

1
Fanatique

複雑なコマンドを避けるために、 RMPrepUSB を使用することをお勧めします。ドライブを選択し、下部にある[クリーン]ボタンをクリックするだけです。これにより、MBRが消去されます。

0
Kurumi Gaming