アクティブパーティションをブートするMBRブートセクター


2

現在、mbr(+以下のセクター)にburgブートローダーがインストールされています。ブートパーティションにインストールし、mbrを、アクティブとしてマークされたパーティションをブートする単純なもの(「ブート」フラグ)に置き換えたい一部のパーティション分割ツールで)。

最初のアクティブなパーティションを見つけてロードするブートセクタをアセンブリに書き込むのに十分なプログラミングを知っていますが、既存のものを使用したいです。

そのようなブートセクターはどこにありますか?たぶんデフォルトのWindowsブートセクタはそれをしますか?

なぜそれをしたいのか

私は、実行するたびにburgブートローダーを常に壊すツール(3DS Max)をWindows上に持っています。どうやら、FlexNetと呼ばれる「海賊版対策」ソフトウェアが含まれており、「3DS Maxはここにインストールされました。残念ながら、ブートセクタに続く63セクタの1つに情報を書き込み、バーグはそこにインストールされます。そのような動作を「マルウェア」または「重大なバグ」と呼びます)。

grubの最近のバージョンでは、アプリケーションが起動に失敗したことを検出し、異なるセクターを使用するようになりましたが、burg(grubのグラフィカル版)にはそのパッチがありません

したがって、ブートパーティションにburgをインストールし、そのパーティションをアクティブとしてマークし、アクティブなパーティションを見つけてブートするシングルセクターブートローダーを用意することを決めました)。


なぜ彼らにブルクに含まれるパッチを要求しないのLaunchpadのバグページ
eyoung100

@ECarterYoungええ、とにかくそうしますが、今パッチが含まれていても、手作業でバーグを再コンパイルするか、ubuntu開発者が新しいバージョンをパッケージ化するのを待つ必要があるので、まだ興味があります「クイックフィックス」で:)。
ジョルジュデュペロン

@ECarterYoungのバグは2011年のbugs.launchpad.net/burg/+bug/867495で既に報告されていますが、それでも「status = new、important = undecided」と見なされているので、プロジェクトのボランティアに喜んでいますが、私には現在時間がない。
ジョルジュデュペロン

私はあなたが何かに遭遇しているかもしれないと思うデザインで
eyoung100

@ECarterYoungああ、それは完全に設計によるもののようです。私の意見では、設計によって起動を中断するソフトウェアは、基本的にはマルウェアです:)。それでも、私は問題を回避する方法を見つけたと思います(ディスクの最初ではなくブートパーティションにバーグをインストールします)、そしてアクティブにインストールされたブートローダーをチェーンロードするブートセクターが欠落していますパーティション。
ジョルジュデュペロン

回答:


1

したがって、ブートパーティションにburgをインストールし、そのパーティションをアクティブとしてマークし、アクティブパーティションを見つけてブートするシングルセクターブートローダーを用意することにしました。

ブートマネージャー/ブートローダープログラムは、FlexNet Publisherがそうするのと同じように、スペースを自由に利用できると想定するのは悪いので、良いです。EFIパーティションディスクではまったく無料はないという事実は別として、一部の MBRパーティションディスクで問題になるのは偶然と習慣だけです。結局のところ、世界が「トラック」1の開始時に最初のパーティションを開始せず、代わりに4KiBから複数GiBの境界にパーティションを配置するようになってからかなりの年月が経ちました。

(PCのブートセクタは、昔はまさにそれを行っていました)。

また、Microsoftユーティリティからマスターブートレコードにそれを行うブートストラップコードを記述する方法はたくさんあります。

bootsect / nt60 SYS / mbr
FreeBSDユーティリティを介して
fdisk -B ada0
Linuxユーティリティへ
ms-sys --mbrsyslinux / dev / sda

newmbr自分で2つのプログラムを作成しました。

これを行うためのユーティリティは、「レスキュー」ディスクやパーティション分割ツールにあります。EFIパーティションハードディスクでこれを行うコードを持っている人もいると聞きます。☺

参考文献


0

ブートローダーをインストールしたら、MBRは既にBootStrapコードで正しくセットアップされていると思います。必要なのはそれだけです。ブートローダーを別のパーティションに転送した場合は、MBRのアクティブパーティションフラグを変更するだけです。また、パーティションの種類が正しいことを確認してください。

MBRを手動で編集することにより(ddコマンド+適切な16進エディターが行います、パーティションエントリはオフセット1BEhから始まります)、またはfdiskgpartedなどのユーティリティを使用して、このフラグを変更できます。

*編集:

転送する代わりに、GRUBを使用する場合と同じ方法で、BURGを別のパーティションに直接インストールすることもできます。

sudo burg-install –force –root-directory=/media/BootPartitionMountPoint  /dev/sda

これは、あなたにジャンプするための命令を含むブートストラップコードで正しいMBRを構成しますBootPartitionMountPointと負荷BURG。


ああ。パーティションにgrubまたはburgをインストールしても、MBRは変更されないと思っていましたが、今ではそれが間違っていると思います。それから試してみます、ありがとう。
ジョルジュデュペロン

私が答えに投稿したコマンドを見てください。–root-directory=/media/BootPartitionMountPoint実際のBURGをインストールする場所を指定します。最後の引数(この場合/dev/sda、単なる例)は、実際にはMBRが書き込まれるディスクを指します。うまくいくかどうか教えてください。
アートゲルトナー

ああ、実際にコマンドを読み間違えました。私の知る限り、それは機能しません:gbrをmbr + 以下のセクターにインストールし(それが問題です)、にマウントされたパーティション内の余分なファイルを見つけるように指示します/media/BootPartitionMountPointが、それ以上が必要ですディスクの先頭にあるmbrのみ。/ dev / sda1にインストールして、家に帰ったときにmbrが単純なものに変わるかどうかを確認します。
ジョルジュデュペロン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.