Linuxのコマンドラインを触っていると、ディスクのパーティション情報を確認するためにfdisk -l
(またはlsblk
)コマンドを使うことがありますよね。HDDやSSDを示す/dev/sda
や/dev/sdb
といった見慣れたデバイス名の中に、突如として/dev/loop0
、/dev/loop1
、/dev/loop2
…と、まるで無限に増殖しているかのような謎のデバイスが大量に表示されて、戸惑ったことはありませんか?
「一体これは何者なんだ?」「私のPCにそんなにたくさんのドライブがあるの?」と不安になった方もいるかもしれません。ご安心ください!今回は、この/dev/loopX
というデバイスの正体と、それが何のために使われているのかを、分かりやすく解説していきます。
1. /dev/loopX
の正体は「ループデバイス(Loop Device)」!
/dev/loopX
と表示されるデバイスは、その名の通り「ループデバイス(Loop Device)」と呼ばれます。これは、ファイルシステムを含む通常のファイル(ISOイメージファイルなど)を、あたかもブロックデバイス(HDDやSSDのような物理的なストレージデバイス)であるかのように扱うための仮想デバイスです。
もう少し簡単に言うと、あなたのPCのどこかにある「ファイル」を、PCに「これはあたかもディスクドライブであるかのように扱ってくれ!」と命令するための、一種の「仮想的なマウントポイント」のようなものです。
2. なぜループデバイスが必要なのか?─その活用シーン
ループデバイスは、主に以下のような状況で利用されます。
シーン1:ISOイメージファイルのマウント(最も一般的!)
Linuxでは、OSのインストールメディアやソフトウェアの配布に使われる「ISOイメージファイル」を、物理的なCD/DVDに焼かずに、直接システムにマウントして中身を閲覧したり、そこからソフトウェアをインストールしたりできます。この際に使われるのがループデバイスです。
例えば、UbuntuのISOファイルをダウンロードして、PCにマウントすると、/dev/loop0
として認識され、その中身をフォルダのようにアクセスできるようになります。
シーン2:仮想ディスクイメージの利用
仮想マシン(VirtualBoxやVMwareなど)が使用する仮想ディスクファイル(.vdi
, .vmdk
など)や、暗号化されたディスクイメージファイル(.dm-crypt
など)を、一時的にシステムにマウントして中身を操作する際にもループデバイスが使われます。
シーン3:開発やテスト環境
ファイルシステムを作成するためのテスト環境や、ディスクイメージを操作する開発環境などでも、実際の物理ディスクを汚さずに仮想的なディスクとしてファイルを扱うためにループデバイスが利用されます。
シーン4:Snapパッケージの動作(特にUbuntu系)
最近のUbuntuなどのLinuxディストリビューションでは、「Snap」という新しいパッケージ管理システムが採用されています。Snapアプリケーションは、それぞれが独立したコンテナのような形式で提供され、そのコンテナファイル(.snap
ファイル)が、システム上でループデバイスとしてマウントされて動作します。
fdisk -l
やlsblk
で大量の/dev/loopX
が見える場合、その多くはSnapパッケージが実行されていることによって生成されたものである可能性が高いです。
3. /dev/loopX
が表示されても心配無用!
fdisk -l
を実行した時に/dev/loopX
が大量に表示されても、PCのストレージに異常があるわけではありません。むしろ、それはシステムが正常に動作しており、ISOファイルやSnapパッケージなどを効率的に利用している証拠です。
これらのループデバイスは、必要に応じて自動的に作成・削除される一時的なものです。PCを再起動したり、Snapアプリケーションを閉じたりすると、その多くは消滅します。
4. lsblk
コマンドでループデバイスの正体を探る
fdisk -l
でもループデバイスは確認できますが、その元になっているファイルが何かを確認するには、lsblk
コマンドの方がより適しています。
ターミナルで以下のコマンドを実行してみてください。
lsblk
通常、/dev/loopX
の行の右側に「MOUNTPOINT(マウントポイント)」と、そのループデバイスがどのファイルから作成されているかを示す「SOURCE」または「ORIGIN」のパスが表示されます。
例えば、
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
loop0 7:0 0 5.9G 1 loop /snap/snap-store/638
loop1 7:1 0 62M 1 loop /snap/core20/2264
...
このように表示されていれば、/dev/loop0
はSnap StoreというSnapアプリケーションのイメージがマウントされていることが分かります。
まとめ:/dev/loopX
はLinuxの賢い仕組み!
/dev/loopX
という謎のデバイスが大量に表示されても、それはPCの故障ではなく、Linuxがファイルベースのイメージを物理デバイスのように扱っている賢い仕組み「ループデバイス」の働きによるものです。
ISOファイルのマウントやSnapパッケージの動作など、私たちの目には見えないところで、PCの効率的な運用を支えてくれています。これで、次にfdisk -l
やlsblk
を実行して/dev/loopX
を目にしても、その正体と役割を理解し、安心してLinuxシステムを使いこなせるでしょう!