タグ付けされた質問 「block-device」

固定サイズのブロック、セクター、またはクラスターでのデータの読み取り/書き込みをサポートするデータストレージデバイス。

3
永続的なblockdev setra先読み設定
SLES 11 SP2サーバー上/dev/sda1およびその/dev/sdb1上にいくつかのSSDをマウントしました。先読み設定をblockdev --setra次のように調整できました。 sudo blockdev --setra 4096 /dev/sda sudo blockdev --setra 4096 /dev/sdb sudo blockdev --getra /dev/sda 4096 sudo blockdev --getra /dev/sdb 4096 ブート時にこの設定を保持するにはどうすればよいですか?具体的には、に対応する設定がsysctl.confありますか、またはこれを実現するためにrcスクリプトで解決する必要がありますか?
14 block-device  ssd  sles 

1
GNU / Linux:オーバーレイブロックデバイス/スタッカブルブロックデバイス
GNU / Linuxには、dirsをオーバーレイするユニオンマウントがあります。したがって、読み取り専用ディレクトリの上に書き込み可能なディレクトリをマウントできます。書き込み可能なディレクトリがマウント解除されると、読み取り専用ディレクトリは変更されません。 ブロックデバイスにも同じ機能を探しています-できれば書き込み可能な部分をファイルに保存してください。だから私は次のようなものを実行したいと思います: device-setup /dev/newdevice /dev/read-only-device overlayfile / dev / newdeviceに書き込むと、変更はoverlayfileに保存されます。書き込まれたセクターを読み取る場合、overlayfileからデータを取得する必要があります。書き込まれていないセクターを読み取る場合、/ dev / read-only-deviceからデータを取得する必要があります。 そのようなツールは存在しますか?

3
/ dev / sdaのメモリ内(カーネル)パーティションテーブルを読み取る方法
誤って/ Part / sdaパーティションテーブルをGParted で上書きしました(AskUbuntuの全容)。まだリブートしておらず、ファイルシステムは完全に使用可能なので、カーネル内のメモリからパーティションテーブルを回復できる可能性があると言われました。それは可能ですか?もしそうなら、どのようにそれを回復し、復元しますか?

2
VMの重みベースのブロックIO制御
KVMを使用して仮想マシンを管理しています。VMに提供されるリソースを制限しようとしています。libvirt / cgroupsを使用して、VMに割り当てられるCPUとメモリを制限できます。次に、いくつかの重みを適用して、各VMに割り当てられるディスク時間を制御します。私はcgroupsからのblkioコントロールを見ました。VMは単なるLinuxプロセスなので、cgroupを使用できますが、非同期IOでも動作するかどうかはわかりません。そうでない場合、誰かが良い代替ソリューションを提案できますか?

2
パーティションデバイス名からブロックデバイス名を取得する方法は?
/dev/sdaパーティションデバイス名(例/dev/sda1)を指定して、親ブロックデバイス名(例)を取得するポータブルな方法を探しています。私は最後のキャラクターを落とすことができることを知っていますが、場合によってはうまくいかないでしょう: MMCカードリーダーには通常、などの名前が付いていますが/dev/mmcblk0、パーティションには/dev/mmcblk0p1(余分に注意してくださいp)のような名前が付いています。 オプション:一部のブロックデバイスにはパーティションテーブルがまったくなく、単一のパーティションとしてフォーマットされています。この場合、パーティションデバイスと親ブロックデバイスは同じです。 LVMボリュームは、まったく異なるケトルです。私は今それらをサポートする必要はありませんが、それらを考慮に入れるのに余分な努力がほとんど必要ないなら、私は気にしません。

6
未加工ブロックデバイスの比較
2つのブロックデバイスを比較できるユーティリティ(またはシェルマジック)はありますか? 詳細:ddを使用して少し大きいSATAデバイスにバックアップした1つの大きな(0.5 TB)RAIDデバイスがあります。デバイスにはいくつかのパーティションがありますが、パーティション化されたデバイスノードではなく、「親」デバイスからコピーします(たとえば、/ dev / hda1ではなく/ dev / hdaをコピーします)。 バックアップが良い/正しいことを確認したいのですが。 各デバイスでmd5sumを実行することを考えましたが、2番目のデバイスが最初のデバイスよりわずかに大きいため、余分なバイトによってハッシュが変更されるため、正確な結果は得られません。

5
USB外付けハードドライブがスリープしないようにする
非アクティブな期間の後にスピンダウンしないように外付けUSBドライブに指示するエレガントな方法があるかどうか誰かが知っていますか?私は、毎分ファイルを書き込むcronベースのソリューションを見てきましたが、素晴らしいunixeyの優雅さの香りはありません。スリープしないように指示するためにドライブに発行できるhdparmまたはscsiコマンドが必要です(USBドライブはOpenBSDのsdドライバーを介してアクセスされます)。これはおそらくエンクロージャ内のコントローラに組み込まれている機能であるため、ドライブをエンクロージャから取り外して直接マシンに配置することを除いて、それほど変更することはできないと思いますが、私は尋ねると思いました、オフチャンス。 理想的には、私はOpenBSDソリューションを探していますが、同じ問題を抱えている他の人がいることを知っているので、すべてのソリューションが回答として考慮されます。

2
mdのbcacheまたはbcacheのmd
bcacheを使用すると、フラッシュベースのソリッドステートドライブ(SSD)などの1つまたは複数の高速ディスクドライブを、1つまたは複数の低速ハードディスクドライブのキャッシュとして機能させることができます。 正しく理解できれば SSD *を割り当てて、複数のバッキングHDDをキャッシュし、その結果キャッシュされたデバイスをmdadm または 複数のHDDを単一のバッキングmdデバイスにRAID化し、SSDをキャッシュに割り当てることができます どちらがより賢明なアプローチなのか疑問に思っています。RAID5 / 6を拡張することは、何らかの方法を使用する方が簡単かもしれないと思いますが、どちらが良いかわかりません! VMのバッキングファイルを含む大規模な非ルートファイルシステムの場合に、1つのアプローチを他のアプローチよりも選択するのに十分な理由(たとえば、バッキングストレージの増加など)はありますか? * 「SSD」とは、ある種の冗長SSDデバイスを意味します。たとえば、2つの物理SSDのRAID1

3
`dd`を使用してデータブロックを右シフトするにはどうすればよいですか?
簡単な例として、100MBのrawブロックデバイスを考えます。つまり、合計512760バイトの512バイトの204800ブロックです。 最初の98MB(200704ブロック)をシフトして、その前に2MB(4096ブロック)のギャップを設けることが課題です。これをインプレースで行うには、読み取られていないセクターに何も書き込まれないことが必要です。これを実現する1つの方法は、バッファーを導入することです。 $ dd if=/dev/sdj2 count=200704 | mbuffer -s 512 -b 4096 -P 100 | dd of=/dev/sdj2 seek=4096 期待されるのはmbuffer、ライターに何かを渡す前に4096ブロックを格納することです。これにより、読み取られていない領域に何も書き込まれず、ライターがバッファーのサイズによってリーダーよりも遅れることが保証されます。バッファーは、リーダーとライターがそれらの制約内で可能な限り高速に動作できるようにする必要があります。 ただし、確実に機能するようには見えません。私は実際のデバイスを使ってみましたが、実際には機能しませんが、ファイルを使った実験は64ビットボックスでは機能しましたが、32ビットボックスでは機能しませんでした。 まず、いくつかの準備: $ dd if=/dev/sdj2 count=200704 | md5sum 0f0727f6644dac7a6ec60ea98ffc6da9 $ dd if=/dev/sdj2 count=200704 of=testfile これは機能しません: $ dd if=/dev/sdj2 count=200704 | mbuffer -s 512 -b 4096 -P 100 -H | dd of=/dev/sdj2 …
10 dd  block-device 

1
特定のデバイスがUSB大容量ストレージであるかどうかを確認する
環境 既存のdd工場イメージからのSDカードイメージングを自動化しています。SDカードは常に外部USBカードリーダーを介して接続されるため、システムではSCSIブロックデバイスとして表示されます/dev/sd*。 現在、私のコマンドの構文は次のとおりです。SDカードブロックデバイスはwrite-image DEVICEどこにDEVICEありますか。/dev/sdd。 問題 私はすでにDEVICEそれが形式であることを確認するために基本的なチェックを行っています/dev/sd*が、これでは十分ではありません。ユーザー(Linuxに慣れていないプロダクションの人々)が間違いを犯し、別の有効なデバイスを指定するのを恐れています。/dev/sda。特に私のイメージングスクリプトにはroot権限が必要なため、迫りくる大災害を見ることができます(イメージ自体を書き込むのではなく、後でSDカードを変更して、SDカードの実際のサイズに応じてパーティションのサイズを調整するなど)... 質問 指定したデバイスが実際にUSB大容量ストレージ(または少なくともリムーバブルデバイス)であることを確認して、システムディスクが誤ってゴミ箱に捨てられるのを防ぎます。どうやってやるの? /procウェブ上やウェブ上で関連性のあるものは何も見つかりませんでした。

1
特定のデバイスファイルの背後にあるドライバーは何ですか?
たとえば/dev/sdb、デバイスファイルが与えられた場合、その背後にあるドライバーを特定することはできますか? 具体的には、ストレージデバイスが使用しているドライバーを特定したいと考えています。fdisk -lは2つのデバイスをリストします:/dev/sdaおよび/dev/sdb。1つはSATAハードドライブで、もう1つはUSB大容量ストレージデバイスです-実際にはSDカードです。 プログラムでどちらを決定するのですか? 私はソフトウェアを書いています。初心者がハードドライブを消去するのを防ぎながら、SDカードを消去できるようにしたいと思っています。

2
ブロックデバイス(またはその一部)が何らかの方法でマウントされているかどうかを簡単に確認する方法
ブロックデバイス(たとえばsdb)またはその一部がマウントされているかどうか(およびその一部)を判別する(root権限なしで)最も簡単な方法は何ですか? LVMがそのパーティションの1つを使用している可能性がある/proc/mountsため、sdbのチェックだけでは不十分sdbです。チェックすることはできますが、チェックするために名前に解決する/sys/block/sdb/sdb*/holders/必要があるdm-xエントリが表示され/dev/mapperます/proc/mounts。可能ですが、より簡単な解決策がある場合...(ルート権限は必要ありません)

3
USBキーはマウントするたびに同じ名前になりますか?
私はbashスクリプトを介して毎日データを保存するために使用されるUSBキーを持っています。次のコマンドを使用して、特定のユーザーがフォルダーを書き込むことができるように、なんとかマウントしました。 mount /dev/sdc1 /media/usb -o rw,uid=sysop,gid=sysop スクリプトは、必要に応じてディレクトリを実行および作成でき、完璧です。ある時点で、USBキーが取り外され、新しいキー(同じモデル)に交換されます。新しいUSBキーにはまだ名前/dev/sdc1がありますか、それとも別のものですか? それが別のものである場合、それを自動的に作成するために、スクリプトに取り付け部品をどのように含めることができますか?

1
Linuxでzfs raidzプールのパーティションのセクターサイズを変更することは可能ですか?
私は、スパースファイルである仮想デバイスを介して、Linux上のzfs raidzプールを新しいディスクに移行しています。ディスクはそれぞれ1.9Tの異なるサイズなので、ディスクのパーティションを使用しました。最後に追加するディスクは4Tbのディスクであり、1.9Tパーティションを使用して他のディスクとしてパーティション化し、プールに追加しました。GPTパーティションテーブルを使用しています。最後のファイルを4Tディスクの1.9Tパーティションに置き換えようとすると、次のようになります。 zpool replace -f zfs_raid /zfs_jbod/zfs_raid/zfs.2 /dev/sdd1 cannot replace /zfs_jbod/zfs_raid/zfs.2 with /dev/sdd1: devices have different sector alignment 他のようにパーティションセクターサイズを512に変更するにはどうすればよいですか。失敗した場合、他のプールデバイスを4024に変更できますか。どうやら論理セクターサイズはすべて512です cat /sys/block/sdd/queue/hw_sector_size Disk /dev/sdd: 4000.8 GB, 4000787030016 bytes, 7814037168 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): …

4
/ tmpはどこにマウントされていますか?
$ df /tmp Filesystem 1K-blocks Used Available Use% Mounted on /dev/root 480589544 42607368 413546516 10% / $ ls /dev/root ls: cannot access /dev/root: No such file or directory デフォルトのDebianインストール/tmpがRAMまたはディスクにあるかどうかを確認したかったのですが、完全に混乱しています。存在しないデバイスがファイルシステムタイプとして報告されるのはなぜですか?「mounted on /」はどういう意味ですか? これは次の出力ですmount: /dev/sda1 on / type ext4 (rw,relatime,errors=remount-ro,data=ordered) sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime) tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=811520k,mode=755) …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.