「さまざまなマウントたち」の編集履歴(バックアップ)一覧はこちら
さまざまなマウントたち - (2010/06/27 (日) 00:28:31) の1つ前との変更点
追加された行は緑色になります。
削除された行は赤色になります。
mountコマンドのmanを見ると、非常に説明が長く、mountコマンドで色々なことができる。
ここでは、たまに使いたいときがあるけど、すぐ忘れてしまうmountコマンドの使い方を書いておく。
**■基本のコマンド-リスト
> mount [-t vfstype] device dir
サポートされているファイルシステムタイプは以下のとおり。
> vfstype :adfs, affs, autofs, coda, coherent, cramfs, devpts, efs, ext, ext2, ext3,
> hfs, hpfs, iso9660, jfs, minix, msdos, ncpfs, nfs, ntfs,
> proc, qnx4, ramfs, reiserfs, romfs, smbfs, sysv, tmpfs,
> udf, ufs, umsdos, usbfs, vfat, xenix, xfs, xiafs
**■CD、DVDのマウント
以下のようにしてマウントする。-t オプションは指定しなくても自動で認識してくれる。mountのmanを見ると、DVDはiso9660の他に、udfというファイルシステムタイプもあるようだが、手元のDVDをいくつかためしてみが、udfではマウントできず、すべてiso9660だった。
なお、-r はCD-ROM、DVD-ROMだと、リードオンリーでマウントしないと警告メッセージがでるため。
> mount [-t iso9660] [-r] /dev/cdrom dir
> mount [-t iso9660] [-r] /dev/dvd dir
> mount [-t iso9660] [-r] /dev/sr0 dir <ーー/dev/cdrom と /dev/dvd は、/dev/sr0のシンボリックリンク
**■任意のディレクトリを任意のディレクトリにマウントする。(Linux 2.4.0 以降)
以下のようにすると、olddirをnewdirにマウントできる。
ファイルシステムのマウントオプションは、元のマウントポイントのものが敬称され、--bind/--rbind の後に -o オプションを指定して変更できない
> mount --bind olddir newdir <ーolddir内のサブマウントはアタッチされない。
> mount --rbind olddir newdir <ーolddir内のサブマウントもアタッチされる。
例:
> $ ls -l tmp
> 合計 4
> -rw-r--r-- 1 usr grp 0 2010-06-26 23:02 fff
> drwxr-xr-x 2 usr grp 4096 2010-06-26 23:02 ttt
> $ ls -l tmp2
> 合計 0 <ーーここには何もない。
> $ sudo mount --bind ./tmp ./tmp2
> $ ls -l tmp
> 合計 4 <ーーもとのディレクトリでもアクセス可能
> -rw-r--r-- 1 usr grp 0 2010-06-26 23:02 fff
> drwxr-xr-x 2 usr grp 4096 2010-06-26 23:02 ttt
> $ ls -l tmp2
> 合計 4 <ーー新たなマウント先でも同じ内容にアクセス可能
> -rw-r--r-- 1 usr grp 0 2010-06-26 23:02 fff
> drwxr-xr-x 2 usr grp 4096 2010-06-26 23:02 ttt
**■マウント済みマウントポイントを別のマウントポイントに移動(Linux 2.5.1 以降)
man上は「マウントされたツリーを纏めて他の場所に移動する」とある機能で、以下のようにする。
ためしたところだと、olddirにマウントされているのアンマウントして、アンマウントしたものをnewdirにマウントしなおす機能。
> mount --move olddir newdir
特にファイルシステム(デバイスファイル)でなくても、上記の --bind や --rbind でマウントした単なるディレクトリであっても、mountでマウントしたものなら移動可能な模様。
なお、移動なのでマウント後は、olddir配下には何もマウントされておらず、newdirをアンマウントしてもolddirはアンマウントされたままだった。
例:
> $ mount | grep tmp2
> /home/tmp on /home/tmp2 type none (rw,bind) <ーーtmp2にマウントされている
> $ ls -l tmp3
> 合計 0 <ーーtmp3には何もマウントされていない。
> $ ls -l tmp2
> 合計 4
> -rw-r--r-- 1 usr grp 0 2010-06-26 23:02 fff
> drwxr-xr-x 2 usr grp 4096 2010-06-26 23:02 ttt
> $ sudo mount --move ./tmp2 ./tmp3
> $ ls -l tmp2
> 合計 0 <ーーtmp2にはマウントされていない。
> $ ls -l tmp3
> 合計 4 <ーーtmp3にマウントされている。
> -rw-r--r-- 1 usr grp 0 2010-06-26 23:02 fff
> drwxr-xr-x 2 usr grp 4096 2010-06-26 23:02 ttt
----
#comment()
----
mountコマンドのmanを見ると、非常に説明が長く、mountコマンドで色々なことができる。
ここでは、たまに使いたいときがあるけど、すぐ忘れてしまうmountコマンドの使い方を書いておく。
**■基本のコマンド-リスト
> mount [-t vfstype] device dir
サポートされているファイルシステムタイプは以下のとおり。
> vfstype :adfs, affs, autofs, coda, coherent, cramfs, devpts, efs, ext, ext2, ext3,
> hfs, hpfs, iso9660, jfs, minix, msdos, ncpfs, nfs, ntfs,
> proc, qnx4, ramfs, reiserfs, romfs, smbfs, sysv, tmpfs,
> udf, ufs, umsdos, usbfs, vfat, xenix, xfs, xiafs
**■ループバック(Loopback)デバイスのマウント
ループバックデバイスとは、任意のファイルを、ファイルシステムのようにマウントする機能。
ただし、ファイルを作成しただけではマウントできず、losetupコマンドを使ってファイル内にファイルシステムの作成が必要。
ファイルシステムを作成したファイルは、以下のようにしてマウントできる。
> mount file dir [-t vfstype] -o loop=/dev/loop? <ーー/dev/loop?がloopbackデバイス。ubuntuではloop0~loop7
10MBのファイルを作成し、それを ext3 としてマウントするには、以下のようにする。
> $ dd if=/dev/zero of=./testfile count=10 bs=1024k <ーー10MBのファイルを作成
> $ ls -l testfile
> -rw-r--r-- 1 usr grp 10485760 2010-06-27 00:02 testfile
> $ sudo losetup -f <ーー最初の未使用loopbackデバイスの表示
> /dev/loop0
> $ sudo losetup /dev/loop0 ./testfile <ーーloopbackデバイスに作成したファイルを接続
> $ sudo mkfs -t ext3 /dev/loop0 <ーーloopbackデバイスを通して、testfile上にファイルシステム作成
> $ sudo mount -t ext3 /dev/loop0 tmp <ーーtmpにloopbackデバイスをマウント
> $ df -m
> ファイルシステム 1M-ブロック 使用 使用可 使用% マウント位置
> ・・・途中略 ・・・
> /dev/loop0 10 2 9 12% /home/tmp <ーー確かに10MBのサイズでマウントされている。
> $ sudo losetup -f ./testfile <ーー最初の未使用loopbackデバイスに作成したファイルを接続
> $ sudo losetup /dev/loop0
> /dev/loop0: [0803]:918611 (/home/tomonari/ISO/testfile)
**■CD、DVDのマウント
以下のようにしてマウントする。-t オプションは指定しなくても自動で認識してくれる。mountのmanを見ると、DVDはiso9660の他に、udfというファイルシステムタイプもあるようだが、手元のDVDをいくつかためしてみが、udfではマウントできず、すべてiso9660だった。
なお、-r はCD-ROM、DVD-ROMだと、リードオンリーでマウントしないと警告メッセージがでるため。
> mount [-t iso9660] [-r] /dev/cdrom dir
> mount [-t iso9660] [-r] /dev/dvd dir
> mount [-t iso9660] [-r] /dev/sr0 dir <ーー/dev/cdrom と /dev/dvd は、/dev/sr0のシンボリックリンク
**■任意のディレクトリを任意のディレクトリにマウントする。(Linux 2.4.0 以降)
以下のようにすると、olddirをnewdirにマウントできる。
ファイルシステムのマウントオプションは、元のマウントポイントのものが敬称され、--bind/--rbind の後に -o オプションを指定して変更できない
> mount --bind olddir newdir <ーolddir内のサブマウントはアタッチされない。
> mount --rbind olddir newdir <ーolddir内のサブマウントもアタッチされる。
例:
> $ ls -l tmp
> 合計 4
> -rw-r--r-- 1 usr grp 0 2010-06-26 23:02 fff
> drwxr-xr-x 2 usr grp 4096 2010-06-26 23:02 ttt
> $ ls -l tmp2
> 合計 0 <ーーここには何もない。
> $ sudo mount --bind ./tmp ./tmp2
> $ ls -l tmp
> 合計 4 <ーーもとのディレクトリでもアクセス可能
> -rw-r--r-- 1 usr grp 0 2010-06-26 23:02 fff
> drwxr-xr-x 2 usr grp 4096 2010-06-26 23:02 ttt
> $ ls -l tmp2
> 合計 4 <ーー新たなマウント先でも同じ内容にアクセス可能
> -rw-r--r-- 1 usr grp 0 2010-06-26 23:02 fff
> drwxr-xr-x 2 usr grp 4096 2010-06-26 23:02 ttt
**■マウント済みマウントポイントを別のマウントポイントに移動(Linux 2.5.1 以降)
man上は「マウントされたツリーを纏めて他の場所に移動する」とある機能で、以下のようにする。
ためしたところだと、olddirにマウントされているのアンマウントして、アンマウントしたものをnewdirにマウントしなおす機能。
> mount --move olddir newdir
特にファイルシステム(デバイスファイル)でなくても、上記の --bind や --rbind でマウントした単なるディレクトリであっても、mountでマウントしたものなら移動可能な模様。
なお、移動なのでマウント後は、olddir配下には何もマウントされておらず、newdirをアンマウントしてもolddirはアンマウントされたままだった。
例:
> $ mount | grep tmp2
> /home/tmp on /home/tmp2 type none (rw,bind) <ーーtmp2にマウントされている
> $ ls -l tmp3
> 合計 0 <ーーtmp3には何もマウントされていない。
> $ ls -l tmp2
> 合計 4
> -rw-r--r-- 1 usr grp 0 2010-06-26 23:02 fff
> drwxr-xr-x 2 usr grp 4096 2010-06-26 23:02 ttt
> $ sudo mount --move ./tmp2 ./tmp3
> $ ls -l tmp2
> 合計 0 <ーーtmp2にはマウントされていない。
> $ ls -l tmp3
> 合計 4 <ーーtmp3にマウントされている。
> -rw-r--r-- 1 usr grp 0 2010-06-26 23:02 fff
> drwxr-xr-x 2 usr grp 4096 2010-06-26 23:02 ttt
----
#comment()
----