LinuxでフラッシュドライブまたはHDDを一時的に抽出する方法は?

LinuxでフラッシュドライブまたはHDDを一時的に抽出する方法は?

次の方法でディスクをマウントするとします。

mount /dev/sdb /mnt/tmp

このファイルシステムにいくつかのファイルが開いていますが、アンマウントしたくありません。ところで、一時的にデバイスを取り出し、再接続したいと思います。このファイルシステムへのすべての読み取りと書き込みがキャッシュでのみ行われるようにするか、デバイスを再接続するまで中断したいと思います。

仮の分離をあらかじめ検討していたら、デバイスマッパーを使います。

# ls -lh /dev/sdb
brw-rw---- 1 root floppy 8, 16 Sep 12 17:38 /dev/sdb
# blockdev --getsize /dev/sdb
2211840
# dmsetup create sdb_detachable --table '0 2211840 linear 8:16 0'
# mount /dev/mapper/sdb_detachable /mnt/tmp
(start working with the filesystem)
(suddenly need to detach the device)
# dmsetup suspend sdb_detachable
# dmsetup load sdb_detachable --table '0 2211840 error'
# blockdev --flushbufs /dev/sdb
(eject the device)
(maybe even use the cached part of the filesystem)
(reattach the device, now it appears as /dev/sdc)
# ls -lh /dev/sdc && blockdev --getsize /dev/sdc
brw-rw---- 1 root floppy 8, 32 Sep 12 17:51 /dev/sdc
2211840
# dmsetup load sdb_detachable --table '0 2211840 linear 8:32 0'
# dmsetup resume sdb_detachable
(filesystem is usable again)
(finished using it, now need to clean up)
# umount /mnt/tmp/
# dmsetup remove sdb_detachable
# eject /dev/sdc

デバイスを直接インストールする場合はどうすればよいですか?デバイスマッパーに「盗む」ことはできますか?

ベストアンサー1

まあ。素敵ですね。私はdmsetupそれができることを知りませんでした。 :)

私の唯一の答えは、システムを一時停止/休止状態にし、フラッシュドライブを取り外して別の場所で実行し、システムを復元する前にフラッシュドライブを挿入することです。

残念ながら、これらの操作を実行すると、デバイスのファイルシステムが破損する可能性があります。 おそらくこれは、あなたがやっていることがそれから読むだけであればうまくいきます(そしてデバイスのどこにでもブロックを書かないでください)。

ただし、ほとんどのフラッシュデバイスには書き換えの繰り返し制限があるため(一部のデバイスでは)、書き込みにまったく同じデータが含まれていても書き込みが発生すると、ファームウェアはコンテンツを移動できます.これは、デバイスを最初のシステムに再インポートすると、ファイルシステムが破損する可能性があることを意味します。

それでも興味深い質問です。 :)

おすすめ記事