普段テキスト整形のコマンドばかり使っていて、ファイルシステムはいじることが少ないので、いざmountを使おうとすると、manに頼るばかりで、なかなか覚えられません。どうやって覚えていけば良いでしょう?
たくさん使って、慣れるしかないと思います。
でも、ただ、mountだけを使っていても覚えられる気がしないので、mount周辺のコマンドも少しずつ覚えていきましょう。
その他のLinuxコマンド入門はコチラ
中級者のためのLinuxコマンド入門
mountの使い方は、
mount デバイス パス
でした。
では、使っていきましょう。
手始めに、/dev/zeroがデバイスとして指定できるか試してみます。
takk@deb9:~/tmp$ sudo mount /dev/zero /mnt mount: /dev/zero is not a block device takk@deb9:~/tmp$
なんかメッセージが出ました。ブロックデバイスではないと言ってます。
キャラクタデバイスである/dev/zeroはマウントできないんでしょうね。
次は、適当なディレクトリを作って、それぞれマウントできるかやってみます。
takk@deb9:~/tmp$ mkdir a b takk@deb9:~/tmp$ ls a b takk@deb9:~/tmp$ sudo mount a b mount: /home/takk/tmp/a is not a block device takk@deb9:~/tmp$
ディレクトリaは、ブロックデバイスではないと言われました。
ディレクトリはデバイスにはならないようです。
ブロックデバイスって何でしょう。lsblkで一覧を確認してみましょう。
takk@deb9:~/tmp$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 40G 0 disk ├─sda1 8:1 0 36G 0 part / ├─sda2 8:2 0 1K 0 part └─sda5 8:5 0 4G 0 part [SWAP] sr0 11:0 1 55.3M 0 rom /media/cdrom0 takk@deb9:~/tmp$
私の環境の場合は、ハードディスク(sda)と、CDROM(sr0)でした。
マウント対象は、ブロックデバイスじゃないと、いけないだろうってことで、
てっとり上記の中から、CDROMにあたるcr0をデバイスとしてマウントしてみます。
takk@deb9:~/tmp$ sudo mount /dev/sr0 a mount: /dev/sr0 is write-protected, mounting read-only takk@deb9:~/tmp$
メッセージが出ました。メッセージを読んでも、マウントできたのかできなかったのか、よく分かりません。本来UNIXの考え方からすると、何も表示しないときは成功したときなので、メッセージが出たということは、失敗したように思えます。
mountpointコマンドで、ディレクトリaがマウントポイントになったか確認してみます。
takk@deb9:~/tmp$ mountpoint a a is a mountpoint takk@deb9:~/tmp$
どうやらマウントは成功していたようです。
マウントする時に、正しくオプションを指定しなかったのでwarningとしてのメッセージだったのでしょう。
一旦アンマウントします。
takk@deb9:~/tmp$ sudo umount a takk@deb9:~/tmp$ mountpoint a a is not a mountpoint takk@deb9:~/tmp$
CDROMをマウントするということで、次は、リードオンリーのマウントオプションをつけてマウントします。オプションは-o roです。
先程出ていたメッセージは消えるでしょうか。
takk@deb9:~/tmp$ sudo mount -o ro /dev/sr0 a takk@deb9:~/tmp$
今度は何も表示されませんでした。何も表示されないということは、今度こそうまくいったということですね。
マウントポイントになったか確認。
takk@deb9:~/tmp$ mountpoint a a is a mountpoint takk@deb9:~/tmp$
そういえば、ブロックデバイスの一覧を見るときに使ったlsblkの表示は、今どうなってるのでしょう。
takk@deb9:~/tmp$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 40G 0 disk ├─sda1 8:1 0 36G 0 part / ├─sda2 8:2 0 1K 0 part └─sda5 8:5 0 4G 0 part [SWAP] sr0 11:0 1 55.3M 0 rom /home/takk/tmp/a takk@deb9:~/tmp$
マウントポイントがaに書き換わってます。そんな馬鹿な。/media/cdrom0がどこかへ消えてしまいました。
もしかしたら、複数マウントポイントがある場合、最新のものだけを表示する仕組みかもしれません。
確認のため、新たにbにもマウントしてみます。
takk@deb9:~/tmp$ sudo mount -o ro /dev/sr0 b takk@deb9:~/tmp$ mountpoint b b is a mountpoint takk@deb9:~/tmp$
lsblkを確認。
takk@deb9:~/tmp$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 40G 0 disk ├─sda1 8:1 0 36G 0 part / ├─sda2 8:2 0 1K 0 part └─sda5 8:5 0 4G 0 part [SWAP] sr0 11:0 1 55.3M 0 rom /home/takk/tmp/b takk@deb9:~/tmp$
sr0のマウントポイントは、ディレクトリbになりました。
次は、aをアンマウントして、再度マウントします。
takk@deb9:~/tmp$ sudo umount a takk@deb9:~/tmp$ sudo mount -o ro /dev/sr0 a takk@deb9:~/tmp$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 40G 0 disk ├─sda1 8:1 0 36G 0 part / ├─sda2 8:2 0 1K 0 part └─sda5 8:5 0 4G 0 part [SWAP] sr0 11:0 1 55.3M 0 rom /home/takk/tmp/a takk@deb9:~/tmp$
lsblkでのsr0のマウントポイントがaになりました。
aもbもアンマウントします。
takk@deb9:~/tmp$ sudo umount a b takk@deb9:~/tmp$ mountpoint a a is not a mountpoint takk@deb9:~/tmp$ mountpoint b b is not a mountpoint takk@deb9:~/tmp$
lsblk確認。
takk@deb9:~/tmp$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 40G 0 disk ├─sda1 8:1 0 36G 0 part / ├─sda2 8:2 0 1K 0 part └─sda5 8:5 0 4G 0 part [SWAP] sr0 11:0 1 55.3M 0 rom /media/cdrom0 takk@deb9:~/tmp$
元に戻りました。
コメント