問題タブ [mbr]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
floating-point - 最小境界矩形を正方形 [10000][10000] に正規化する方法は?
http://www.rtreeportal.org/からダウンロードした空間データ セットがあります。
MBR は次のような値を持つ四角形です。
506364.3125 4583290.0 508388.09375 4584786.0 は四角形の (x_low,y_low,x_high,y_high) を表します。
ご覧のとおり、すべての場所は大きな float 値によって調整されています。そして、空間にはほぼ20000以上の長方形があります。
空間全体を面積[10000][10000]の空間に生成したい
すべての x の最小値は 0 になります
すべての x の最大値は 10000 になります
すべての y の最小値は 0 になります
すべての y の最大値は 10000 になります
それに応じて、他のすべての x 座標と y 座標が変更されます。ロジックはどうなりますか?
boot - MBR が読み込まれるための要件は何ですか?
古い USB スティックの MBR を変更したり、そこから起動したり、さまざまな BIOS 機能をテストしたりして遊んでいます...
しかし、私は理解していないようです - どのデバイスから起動するかを決定するときに、BIOS は何を調べますか? 明らかな 2 つの要件は次のとおりです。
- BIOS の起動順序を変更して、接続時に USB からの起動を試みるようにします。
- MBR 署名 - オフセット 0x1fe に 0x55aa があります。
何らかの理由で、私のラップトップは、私が書いた一部の MBR では USB からのみ起動し、他のものでは USB を無視してメイン HD から起動します。もちろん、すべて 0x55aa で署名されています。
なぜそれが起こるのですか?BIOS は他に何を探しますか?
arm - ラズベリー Pi から MBR を抽出する
Linuxマシンと同じように、ラズベリーパイ(SDCARDにラズビアンがロードされている)からMBRを抽出しようとしました。
ただし、file
onmbr.bin
を実行すると、次のメッセージが表示されます:-
mbr.bin: x86 boot sector; partition 1: ID=0xc, starthead 130, startsector 8192, 114688 sectors; partition 2: ID=0x83, starthead 0, startsector 122880, 15400960 sectors, code offset 0xb8
なぜそれがであると言うのx86 boot sector
ですか?
[編集]ここで起動シーケンスについても読みました。ラズベリーパイはMBRを使用しますか?
mbr - Windows 8でGPTボリュームをMBRに変換する方法
GPT
私の問題は、ディスクではなくボリュームを変換することです。いくつかの解決策を見つけましたが、それらはすべてディスクを変換する方法に関するものです。私のWindows 8では、disk 0
. ボリュームdisk 0
があります。7
で 1 つのボリュームを変換したいだけですdisk 0
。これどうやってするの?
bios - VMDK ファイルで MBR セクターを見つけるにはどうすればよいですか?
VMware BIOS がロード前に MBR を検出する方法を理解しようとしています。
物理ハードディスクでは簡単です。MBR は最初のセクターにあります。
しかし、.. VM ではどうなるでしょうか。
2 つの VM を作成しました。最初の vmdk (Linux ベースのシステムがインストールされている) で、オフセット 0x2A0000 に MBR が見つかりました。
2 番目の vmdk ファイル (Windows XP がインストールされている) で、MBR を 2 回以上見つけましたが、見つけたすべてのオフセットを 512 (セクター サイズ) で割ることができませんでした。 MBRはセクターの先頭から開始する必要があります+セクターサイズはvmdkの512バイトです=> MBRの開始オフセットは512で除算する必要があります。間違っている場合は修正してください)。
したがって、それらはおそらくバックアップ用のコピーだったと思います..言うまでもなく、xp .vmdk の @ offset 0x2A0000 は何も興味深いものではありませんでした。
では、VMware の BIOS はどのように MBR を検出するのでしょうか? この構成可能なパラメータはどこにありますか\どのように計算されていますか?
追加情報:
- どちらの VMDK も 1 ファイルのハードディスク ファイルです (40GB まで拡張できます)。
それらが提供するシステムはそれらとそれらのみを使用します(XPはxp.vmdkを使用し、Linuxはlinux.vmdkを使用し、追加のVMDKはありません)。
- @Windows VM \.\PhysicalDrive0 で WinHex を使用して MBR を取得しました。問題ないように見えました (署名など)。
- @Linux VM コマンド「dd if=/dev/sda of=mbr.bin bs=512 count=1」を使用し、16 進バイトを表示して MBR を取得しました。最後に署名など)。
VM から MBR を取得した後、対応する各 .vmdk ファイルでホスト PC の MBR を検索しました (16 進エディターを使用)。オフセットは上記のとおりでした。
どんな助けでも大歓迎です。ありがとう!
assembly - オペレーティング システムのバイナリ コードを作成するには、どのような環境を使用できますか?
オペレーティング システムのブートストラップを学習するために、次の方法でいくつかの簡単なテストを行います。
oracle viratualbox をインストールし、hdd ディスクを作成します
hex-editor HxD をインストールし、この hdd ディスクにコードを書き込み、この hdd を表すファイルを開きます
最初の 512 バイト セクタの最後に、55 AA を 1FE および 1FF バイトで書き込みます。
および他のコードは、最初のセクターの最初のバイトから書き込みます。
このようにして、HxD から hdd ファイルのブロックを解除する必要があります。これが完了するまで、virtualbox は起動できないためです。
独立した開発環境を作成するため、仮想マシンまたは別の実マシンを使用したい (2 番目の方法はあまり便利ではありません)。
ブートストラップ (および単純な開発後) オペレーティング システムを学習するために、このテストをより効率的に行うにはどうすればよいですか?