問題タブ [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.

0 投票する
1 に答える
109 参照

assembly - assembly - カーネルの最後に追加されたカーネルを起動する方法は?

アセンブリ ブートローダー/MBR でアセンブリ カーネルを起動しようとしています。オフセット 0x7e00 からオフセット 0x8000 (セクター 1) までのカーネルをメモリに読み込んでいます。オフセット 0x7e00 にジャンプします。カーネルにジャンプしないのはなぜですか?

~~~~

環境: NASM、QEMU、Windows 7 64 ビット。

0 投票する
1 に答える
1323 参照

linux - ハードディスク ドライブをフォーマットできず、Linux を Dell ハイブリッド ウルトラブックにインストールできない

OpenSUSE 13.2: ディスクを表示し、パーティションの削除と作成、さらには新しいパーティション テーブルの作成を許可します。ただし、ディスクをフォーマットせず、フォーマットする必要があるすべてのパーティションに対して「/dev/sda1 をマウントできません: デバイスまたはリソースがビジーです」というエラーが発生します。

Debian 8/8.1、Ubuntu 15.04: ハードディスクがまったく表示されません! それらを選択してパーティションを管理することを不可能にします

完全な質問はこちら: https://unix.stackexchange.com/questions/210034/cant-format-h​​dds-and-install-linux-to-dell-hybrid-ultrabook

クロスポストで申し訳ありませんが、stackoverflow は私が知っている中で最も有益で活発なフォーラムであり、私が得た唯一の回答はここにありました (以下のコメント)。

0 投票する
1 に答える
460 参照

hex - MBR オフセット 0x1C3 とは何ですか?どうすれば編集できますか?

この質問を別のWebサイトに投稿しましたが、ユーザーがこの質問をここに投稿することを提案するまで、誰も私を助けることができませんでした. そう...

Intel コントローラを使用しようとすると、古い GA-P35-DS3 マザーボードで SSD の POSTING に問題が発生します。

どうやら (よくグーグルで調べた結果) これは BIOS のバグであり、MBR を簡単に編集することで修正できることがわかりました。問題は、どうすればこれを行うことができるかわかりません。010 Editor と HxD を試しましたが、完全に圧倒され、ディスクを開くことはできますが、その特定の「オフセット」(0x1C3) が見つかりません。

興味がある場合は、この投稿で私の問題 (シナリオ 1) とそれを修正するために必要な手順について説明します: http://forum.giga-byte.co.uk/index.php?topic=8585.0

したがって、誰かが「オフセット」とは何か、010 Editor (または適切と思われるその他のプログラム) でそれを見つける方法を理解するのを手伝ってくれて、これらの bye を修正できるようになれば、とても感謝しています! :)

編集: 私は周りを見回しており、これらのバイトを変更する必要があるかどうか少し混乱しています: http://i.imgur.com/Ys0gU3O.png

またはこれらのバイト: j59ypS5.png (2 番目の like を投稿するには、さらに担当者が必要なので、これを imgur URL にコピーして貼り付けることができます)

その内容から判断すると、最初のオプションは意味がないようです。しかし、2番目のオプションは「00 00 00」だけなので、意味があるかどうかもわかりません...

誰かが私を助けてくれたら、私は永遠に感謝します.

0 投票する
0 に答える
53 参照

bootloader - 拡張ブート レコード - 未使用の 3 番目と 4 番目のエントリ

DOS/MBR パーティション レイアウトを使用して 4 つ以上のパーティションを作成するには、通常、拡張パーティションを使用します。基本的に、これは、最後のプライマリ パーティションの最初のブロック (真の MBR と同じレイアウト) に別のパーティション テーブルが含まれていることを意味します。

ただし、追加のパーティションを定義するために、4 つのパーティション テーブル エントリすべてを使用する代わりに、最初の 2 つのエントリのみが使用されます ( Wikipedia の EBR )。

これは、多数のセカンダリ パーティションを定義すると、ツリー構造ではなく、パーティション テーブルのリンク リストが作成されることを意味します。

私の質問は、この設計には利点が見られないのに、なぜこのアプローチが選択されたのかということです。

0 投票する
1 に答える
148 参照

assembly - フラッシュ ドライブのマスター ブート レコードが機能しない

私は純粋なハードウェア (OS なし) プログラミングを学んでおり、フラッシュドライブ (Kingston DT101 G2 8Gb を使用) からの起動に問題があります。最初のコードはバックアップされておらず、今では正確に再現することはできません:(、エミュレーター(最新のBochs)とライブハードウェアの両方でうまく機能しました。その後、より多くの機能が追加されました(サブルーチンを出力してロードするダンプ) int 13h の関数 42h を使用してフラッシュ ドライブからセクターを取得した場合、これは Bochs では完全に機能しましたが、ライブ コンピューターではまったく機能しませんでした。最初と変更されたセグメントレジスタの初期化で. これが今どのように見えるかです:

しかし、これは正しく機能しませんでした。画面の最初の位置 (0, 0) に文字を配置しますが、次の位置は黒です (ただし、文字コードが何であれ、少なくとも背景は青でなければなりません)。さらに、異なるサイズのフラッシュ ドライブ (Kingston DT101 G2、32Gb) に同じコードを書き込むと、「Missing operating system...」というメッセージが表示されます。さまざまなバリエーションを試しましたが、まだこの作業を行うことができず、何が起こるかわかりません。これはフラッシュドライブの問題ですか? A さんは、数か月前に同じフラッシュ モデルで LinuxLive を試し、4 ~ 5 回起動した後、起動が停止したことを思い出すことができます。ここで私が使用するもの: コンピューター モデル: HP EliteBook 8440p; (オフリース); CPU: Intel Core i5 M520 2.40GHz 2 コア; BIOS: Hewlett-Packard 68CCU Ver. F.0D、14/07/2010 (更新されたかどうかはわかりません); コンパイラ: NASM;

何が起こるかを理解するのを手伝ってください。どうもありがとう。

0 投票する
2 に答える
1785 参照

c - C でブートセクタを記述する: スタック ポインタの初期化を生成しないようにする

アセンブリでブートセクタ コードを書いてみた後、C で同じことができるかどうか疑問に思っています。これまでのところ、空の関数でのコード生成は次のようになります。

Cで:

結果の asm (GCC によって生成):

しかし、特にこの(エントリ)関数について、ベースとスタックポインタを初期化しないように指定することはできますか? BIOS は制御を 0x7c00 に直接転送するため、スタック ポインターを設定する最初の 2 つの命令は冗長です。

関数宣言に追加しようとし__attribute__ ((always_inline, noreturn, regparm(0)))ましたが、何もしないようです。

0 投票する
1 に答える
804 参照

partition - MBR の最初のパーティションがセクター 63 に設定されているのはなぜですか?

私の記憶が正しければ、最初のセクターは mbr とブート コードであり、XT が最初に登場したとき、DOS は MBR の直後に配置され、最初のパーティションはセクター 63 に配置されました。

また、最初のシリンダーが予約されていて、シリンダーごとに 63 セクターがあったことも覚えています。そのため、最初のパーティションは 2 番目のシリンダーから始まり、セクター 63 になりました。

私が正しく覚えているかどうか知っている人はいますか?

0 投票する
1 に答える
423 参照

assembly - 再配置後の MOV 絶対アドレッシング

MBR (16 ビット) で int 13h フックを作成しています。古い int ベクトルを次のように保存します。

実行時にコードを再配置したため、oldint13 変数の正しい位置を計算する必要がありました。再配置された oldint13 変数の場所を確認すると、正しいアドレス (0xf000e3f3) が表示されます。int 13h をフックした後、元の int 13h ハンドラを次のように呼び出します。

しかし、それはアドレス 0 にジャンプします。

ax は 0 になります。(oldint13-cpy_original+0x7e00) は正しいアドレスに正しく解決され、このアドレスにはまだ正しい元の int 13h ベクトルが含まれています。逆アセンブルされたコードでも次のように表示されます。

どちらが正しい。

なぜ一体なぜ0を返すのですか?16ビットか何かでキャッチはありますか?

私のブートローダ コードの完全なコピーは次のとおりです。