問題タブ [block-device]

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 に答える
297 参照

linux - Linux で libaio を使用して FUA リクエストを送信する

libaio を使用してブロック デバイス (/dev/sdb など) にアクセスしようとしています。私は正常に動作しますが、libaio の API を使用して FUA (Force Unit Access) を実行する方法を知りたいと思っていました。

この件に関して私が見つけたドキュメントは非常に貧弱であると言わざるを得ません。

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

cygwin - Linux の /dev/sda、/dev/sdb などに相当する Cygwin

Linux では、/dev/sdX としてハード ドライブにアクセスできます。これは、パーティション テーブル、ファイル システムなどを無視し、ブロックごとにドライブにアクセスするだけです。Cygwinで同等のものは何ですか? すでに Google を検索しましたが、機能するものは見つかりませんでした。

(たとえば)次のようなフラッシュドライブのイメージを作成できるようにしたい

ハード ドライブ イメージを読み書きする Windows プログラムがあることを理解しています。dd コマンドは単なる例です。ドライブイメージを作成した後ではありません。私はデバイス名の後です。

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

python - Windows CDROM ドライブをブロック ファイルとして扱いますか?

Python モジュール (正確にはpython-dvdvideo ) を使用して ISO イメージのクローンを作成しようとしています。提供されたクラスは、既にコンピューター上にある ISO ファイルへのファイルパスを渡すと正常に動作しますが、代わりに CDROM ドライブのドライブ文字を渡そうとすると例外がスローされます。

ライブラリのコードをすばやく調べたところ、次に示すように、クラスが通常のファイルまたはブロックの特殊なデバイス ファイルのいずれかを想定していると判断しました。

これは私の質問につながります: Windows CDROM ドライブをこれらのいずれかとして扱う方法はありますか? Linux がこの点でどのように機能するか (Linux は CDROM ドライブを /dev/* の下のブロック デバイス ファイルとして扱う) については漠然と知っていますが、Windows がドライブを認識する方法については詳しくありません。

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

android - Android: 起動時に別のユーザーデータ パーティションをマウントする

私の Samsung Note 10.1 では、別のユーザーデータ パーティションをマウントできるようにしたいと考えています。私の目標は、init.rcスクリプトを変更して起動時にこれを実現することです。これは、すべてのファイル システムをセットアップし、ユーザーデータ、システムなどのパーティションをマウントするように見えるためです。たとえばmkdir /data 0771 system system、userdata パーティションのマウント ポイントをセットアップするように聞こえる行があります。userdata パーティションは block device に対応します/dev/block/mmcblk0p12

ここで、 をマウントする代わりに、デバイスに挿入された µSD カードに配置したmmcblk0p12のイメージをマウントしたいと考えています。mmcblk0p12µSD カードは、ブロック デバイス経由でアクセスできます/dev/block/vold/179:17。これは、最初に µSD カードをマウントし、次にイメージを µSD カードにマウントする必要があることを意味します。

しかし、これは私が失敗するところです。後でイメージをマウントする方法は言うまでもなく、μSD カードを にマウントする方法がわかりinit.rcません。この行を何度も追加しましたmount -t ext4 /dev/block/vold/179\:17 /mnt/extSdCardが、ブート ループが発生するだけです。

それで、誰もこれを行う方法を知っていますか?

EDIT1: どうやらパーティションは にマウントされるようなfstab.sdmk4x12ので、行を追加しました/dev/block/vold/179\:17 /mnt/extSdCard ext 4 noatime,nosuid,nodev,discard,noauto_da_alloc,journal_async_commit,erros=panic wait,check。残念ながらこれは機能しませんでしたが、カーネルログからCannot mount filesystem on /dev/block/vold/179\:17 at /mnt/extSdCard.

/dev/block/mmcblk1p1EDIT2: μSDカードのパーティションであるを使用しないのは愚かです。fstab.sdmk4x12このようにして、ファイルを変更して µSD カードをマウントできるようになりました。

EDIT3:μSDカードをマウントできた後、イメージをマウントする方法の問題が残ります。userdata パーティションをマウントする行を変更しました。この行は EDIT1+2 の行と同じですが、イメージ/storage/extSdCard/userdata.imgを使用して にマウントし/dataます。しかし、どうやらイメージのマウントに失敗していると思います。デバイスは起動しますが、ユーザーデータ パーティションが破損していることを示すエラーが表示されます。また、リセットするオプションも提供されますが、もちろんこれはユーザーデータ パーティションにのみ影響し、再起動するとすぐにイメージを再度マウントしようとして失敗し、このエラーが再び表示されます。

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

performance - 私の実験で virtio-scsi が virtio-blk よりもずっと遅いのはなぜですか (over and ceph rbd image)?

こんにちは、最近、qemu ターゲットを介して virtio-scsi over rbd の実験を行い (その DISCARD/TRIM サポートのために)、スループットと iops を、ゲストで fio を使用して、同じマシン上で rbd セットアップを介した virtio-blk のスループットと iops と比較しました。 . シーケンシャル読み取り/書き込みのスループットは 7 分の 1 (42.3MB/s 対 309MB/秒) であり、ランダム読み取り/書き込みの iops は 10 分の 1 (546 対 5705) です。

私が行ったことは、OpenStack Juno を使用して仮想マシンをセットアップすることでした。これにより、virtio-blk over rbd セットアップが可能になりました。次に、libvirt configure xml の関連部分を次のように変更しました。

これに:

ソフトウェアのバージョンは次のとおりです。

qemu 2.5.1

libvirt 1.2.2

kernel 3.18.0-031800-generic #201412071935 SMP Mon Dec 8 00:36:34 UTC 2014 x86_64 (Ubuntu 14.04 カーネル)

ハイパーバイザーは KVM です。

virtio-scsi と virtio-blk のパフォーマンスの違いはそれほど大きくないと思います。ですから、私が間違っていたことと、妥当なパフォーマンスを達成する方法を指摘してください。

制約は、OpenStack で機能するソリューション (Juno で機能するのが理想的) が必要であり、多くのパッチやコーディングを必要としないことです。たとえば、virtio-scsi + vhost-scsi + scsi-mq について聞いたことがありますが、現在 OpenStack では利用できないようです。

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

linux-kernel - プロトコル固有のドライバーのブロック レイヤー スイッチ

謎のブロックレイヤーを学んでいるのですが、 generic_make_request関数にフックして、リクエストがどのブロックデバイスに属しているかを調べてみました。

私の場合、/dev/sda scsi デバイスがあり、方向が READ | WRITE、およびリクエストのその他の詳細。

カーネルがどのデバイス固有のドライバーが要求を処理する必要があるかをどのように決定するかについて、このブロック要求をさらに深く検索したいと思いました。

たとえば、scsi と IDE の 2 つのデバイスがある場合、/dev/sda と /dev/hd0 の 2 つのブロック デバイスがあります。

一般的なブロック層からデバイスまたはプロトコル固有の層 (scsi.c および ide.c) への切り替えが正確にどこで行われるか、どの情報が使用されるか。