LinuxでRAMディスクをマウントせずに作成して接続する方法は?また、/dev/sdb
RAMディスクに割り当てられたデバイス名をどのように見つけることができますか?最後に、RAMディスクを取り外し(マウント解除)する方法は?
RAMディスクを作成して接続したいのですが、マウントしたくありません。取り除きたいです。
Mac OS Xでは、次のコマンドは100MiB RAMディスクをマウントせずに作成して接続します。
hdiutil attach -nomount ram://204800
# In terms of the number of 512-byte sectors,
# 100 MiB is equivalent to 204800 sectors.
正常に完了すると、上記のコマンドは/dev/disk1
RamDiskに割り当てられているものと同じデバイス名を返します。ただし、後でデバイス名を忘れた場合は、次のOSXコマンド(およびGUIアプリケーションディスクユーティリティ)を使用してデバイス名を見つけることができます。
# Displays the list of attached disks.
diskutil list
# Displays the details of a specific disk.
diskutil info /dev/disk1
最後に、Mac OS XからRAMディスクを取り外すには、マウントするかどうかにかかわらず、次のコマンド(GUIアプリケーションディスクユーティリティを含む)が機能します。インストールされている場合、このコマンドは最初に自動的に削除されます。
hdiutil detach /dev/disk1
Linuxで上記の3つのタスクをどのように実装しますか? (私が要求するタスクがディストリビューションに依存している場合は、Debian 9に特に興味があります。)
RAMディスクをマウントしたくない理由の1つは、dd
ファイルシステムをバイパスしてディスク(またはデバイス)に直接読み書きするコマンドを試してみたいからです。実際、連続書き込みモードでは、dd
デバイスのボリュームをアンマウントする必要がありますが、デバイスは接続されたままになり、取り出されません。
Linuxでは、次のmount
コマンドは100MiB RAMディスクを作成、接続、およびマウントします。
mkdir /mnt/ramdisk
mount -t tmpfs -o size=100m tmpfs /mnt/ramdisk
ところで、「インストール」部分を無効にする方法がわかりません。
ちなみに、Mac OS XでRAMディスクを作成して接続する以外にマウントする方法を疑問に思う人のために、ここにコマンドがあります。
diskutil erasevolume HFS+ "RamD" $(hdiutil attach -nomount ram://204800)
# 204800 is the number of 512-byte sectors,
# resulting in 100 MiB.
#
# "RamD" is a volume name or label.
#
# "erasevolume" means to format the volume,
# but it does not necessarily write zeros.
答え1
あなたの場合の問題は、tmpfs用にマウントできるRAMベースのブロックデバイスがないことです。通常、Linuxがファイルシステムから読み取ると、ファイルはブロックデバイス(通常はハードディスクパーティション)にあります。ディスク(バックアップストア)からファイルを読み取ると、データはRAMにキャッシュされます。
Tmpfsはバックアップストレージをブロックします。つまり、キャッシュに書き込んでキャッシュから書き込まれたデータを再読み込みします。これは、アクセス可能なdd
ブロックデバイスがないことを意味します。
必要に応じて、ファイルに保存されているディスクイメージをファイルシステムとしてマウントできるループデバイスを使用することをお勧めします。たとえば、
losetup /dev/loop0 filesys.image
その中には、filesys.image
ファイルシステムイメージを含むファイルがあります。これにより、ファイルをバックアップストアとして使用するブロックデバイス/dev/loop0
のように見えます。filesys.image
望むよりman losetup
。