Linuxは、CD、DVD、ブルーレイ、外付けハードディスク、USBメモリ、HDDを追加した場合、マウントという作業が必要になる。
Windowsであれば自動認識であったり、ディスク管理のボリューム作成の作業にあたる。
Windowsの場合は、ドライブとして認識するがLinuxはディレクトリにマウントして使用する。Windowsユーザーすれば一見わかりずらい仕様であるが、良い面もある。どのディレクトリにもマウントすることができるので、容量が不足しているディレクトリがあれば、その配下にドライブをマウントすることで容量を増やすことができる。
外部ストレージをマウント
USB外部ストレージをdmesgでカーネルが出力したログをあさり、外部ストレージのログをあてる。
下記のサンプルはUSB外部ストレージを差し込んだ際のログ
$dmesg
[ 36.450974] virbr0: port 1(virbr0-nic) entered learning state
[ 36.524953] usb 3-1: new high-speed USB device number 7 using xhci_hcd
[ 36.689637] usb 3-1: New USB device found, idVendor=0411, idProduct=01c5
[ 36.689646] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 36.689652] usb 3-1: Product: HD-PCTU2
[ 36.689656] usb 3-1: Manufacturer: BUFFALO
[ 36.689661] usb 3-1: SerialNumber: 3030304A4138533137383239
[ 36.690859] usb-storage 3-1:1.0: USB Mass Storage device detected
[ 36.691209] scsi host10: usb-storage 3-1:1.0
[ 37.693307] scsi 10:0:0:0: Direct-Access BUFFALO HD-PCTU2 0108 PQ: 0 ANSI: 4
[ 37.694250] sd 10:0:0:0: Attached scsi generic sg3 type 0
[ 37.694606] sd 10:0:0:0: [sdc] 1250058927 512-byte logical blocks: (640 GB/596 GiB)
[ 37.695418] sd 10:0:0:0: [sdc] Write Protect is off
[ 37.695426] sd 10:0:0:0: [sdc] Mode Sense: 1c 00 00 00
[ 37.695774] sd 10:0:0:0: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 37.731210] sdc: sdc1
[ 37.731221] sdc: p1 size 1250236416 extends beyond EOD, enabling native capacity
[ 37.733762] sdc: sdc1
[ 37.733769] sdc: p1 size 1250236416 extends beyond EOD, truncated
[ 37.734963] sd 10:0:0:0: [sdc] Attached SCSI disk
fdiskで領域を確保
外部記録媒体(外付けハードディスク、USBメモリ、SDメモリ)は、本作業を行う。
$fdisk /dev/sdc
コマンド (m でヘルプ): n
コマンドアクション
e 拡張
p 基本領域 (1-4)
p
領域番号 (1-4): 1
最初 シリンダ (1-xxxxxxxxx, default 1): 1
Using default value 1
終点 シリンダ または +サイズ または +サイズM または +サイズK (1-xxxxxxxxx, default xxxxxxxxx): xxxxxxxxx
Using default value xxxxxxxxx
コマンド (m でヘルプ): w
OSの非同期書き込みを考慮してもう一度、syncさせておく
$sync
フォーマット
ext4 でフォーマットする。
$mkfs.ext4 /dev/sdc1
ファイルシステム種類
解説 | |
---|---|
ext2 | 初期段階のlinuxシステムで使用されていた。 「second extended filesystem」の略だ限界ファイルサイズ2TiB、最大容量(ボリュームサイズ)16TiB、ジャーナルには 非対応となっているので、使うのは避けたほうがいい。 rootのために一部容量を予約しているので限界まで容量をつかいきってもrootでのメンテナンスが可能となっている。 ジャーナルに非対応なため、一度クラッシュすると復旧に時間がかかる。 このファイルシステムは旧式なので「ext4」の使用をおすすめする。 |
ext3 | 「third extended file system」の略だ、ext2との高い互換性があり、 ext2をext3に変換することも可能だ。大きな変更点としてはジャーナルが 追加されているところだろう。 |
ext4 | 「fourth extended file system」の略である。ext3の拡張であり、 現在のlinuxファイルシステムのデファクトスタンダードだ。 最大ファイルサイズは16TiBと拡張され、最大ボリューム サイズも1EiBとなっている。 また日付範囲も1901年12月14日から2514年4月25日までと拡張されている、 下位互換もたもたれており、ext3としてマウントすることも可能だ。 |
JFS | このファイルシステムは「Journaled File System」の略であり、IBMが自社の商用UNIXである AIXに採用したファイルシステムだ。 ジャーナルなファイルシステムとしては最古の部類に入る。 このファイルシステムは既存ファイルシステムを拡張、機能追加するのではなく、 ジャーナルを前提として新しく設計されたファイルシステムだ。 最大ファイルサイズは4PiB、最大容量(ボリュームサイズ)は32PiBとなっている、 高負荷時にも一定のパフォーマンスを維持できる。 信頼性は高いが、ディストリビューションのデフォルト設定ではext4が選択されていることが多い。 |
XFS | XFSはSilicon Graphics Incで設計されたファイルシステムでRHEL7では デフォルトのファイルシステムとなっている。 こちらも最古のジャーナリングファイルシステムの一つだ。 マウントした状態でのデフラグなどの操作が可能となっている。最大ファイル サイズ8EiB、 最大ボリューム サイズ8EiBである。 XFSは当初からハイエンドシステム向に開発されたためスケーラビリティの面において ext4を圧倒している。 RHELがデフォルトでXFSを採用したのはそういった理由もあるだろう。 |
Fat | 「File Allocation Table」の略でWindows95やWindowsNTなどで使用されている ファイルシステムのひとつだ。 非常に古典的なファイルシステムなためジャーナルには非対応でスケーラビリティも貧弱である。 またLinuxからの属性情報をひきつげないため、パーミッション情報などが、失われる。 容量の小さなUSBメモリを扱うのが限界だ。 しかし逆に超古典的なために、大概のOSで読み書きが可能となっている。 最大ファイルサイズは4GiB最大容量(ボリュームサイズ)も 4GiBとなる。 |
Fat32 | Fat32はFatの32Bit版である。 これにより、扱えるボリュームサイズが大きくなっている。 そのためFatと比べ外付けのHDDなどをフォーマットして使うパターンが多いだろう。 しかしジャーナルなファイルシステムではないので、こちらも障害耐性が低い。 こちらも古いものなので大抵のOSで読み書きが可能となっている。 |
UUIDでマウント
$ls -al /dev/disk/by-uuid/
lrwxrwxrwx 1 root root 10 7月 31 07:01 7ba0cf96-598e-413d-8053-b4c547628424 -> ../../sdc1
lrwxrwxrwx 1 root root 10 7月 31 07:01 9aa422bc-689d-4efc-aae6-ee144c02127e -> ../../sdb1
lrwxrwxrwx 1 root root 10 7月 31 07:01 c3ff64a5-5e26-4438-855e-82183a81b1f9 -> ../../dm-0
lrwxrwxrwx 1 root root 10 7月 31 07:01 de09e6b8-3a26-4465-a971-8957fa6f5528 -> ../../dm-1
マウント用フォルダを作成。
基本的には、外部媒体をマウントするときは/mnt配下にディレクトリを作成してマウントする。
状況次第では、/mnt配下にこだわる必要はなく別のディレクトリでも問題ない。
$sudo mkdir /mnt/usbdisk1
外付けHDDのマウント
$mount /dev/sdc1 /mnt/usbdisk1
CD-ROMのマウント
mount -t cd9660 -o rdonly /dev/cd0c /cdrom
起動時に自動マウントする
恒常的なマウントを行うためには、以下の2つの作業を行う必要があります。
- /etc/fstabファイルの編集
- mountコマンドの実行、または再起動(init 6)の実行
viで/etc/fstabを編集する。
$vi /etc/fstab
/dev/hda4 / ext3 defaults 1 1
/dev/hda1 /boot ext3 defaults 1 2
/dev/cdrom /mnt/cdrom iso9660 noauto,owner,ro 0 0
/dev/fd0 /mnt/floppy auto noauto,owner 0 0
/dev/hda2 /var ext3 defaults 1 3
/dev/hda3 swap swap defaults 0 0
/dev/sdc1 /mnt/usbdisk1 ext4 defaults 1 2
① ② ③ ④ ⑤⑥
項番 | フィールド | 設定内容 |
---|---|---|
① | マウントするデバイスファイル名 | マウントするデバイスファイル名またはボリュームラベルを指定 |
② | マウントポイント | マウントポイントとなるディレクトリの絶対パスを指定 |
③ | ファイルシステムの種類 | ①のファイルシステムの指定。下表1を参照。 |
④ | マウントオプション | ①のマウントオプションの指定。下表2を参照。 |
⑤ | dump | dumpコマンドによるバックアップ対象となるかどうかを指定 0 : バックアップする必要がない 1 : バックアップする必要がある |
⑥ | fsck | システム起動時にfsckコマンドでチェックを行う時の順序を指定 0 : fsckコマンドでファイルシステムをチェックしない 1 : ルートファイルシステム ( / ) に指定する数値 2以上 : その他のファイルシステムに指定する数値 |
④のオプション表
オプション | 説明 |
---|---|
async | ファイルシステムの入出力を非同期で実行 |
auto | mount -a コマンドの実行時にマウントする |
noauto | mount -a コマンドの実行時にマウントしない |
defaults | デフォルトのオプションを設定 ( async、auto、dev、exec、nouser、rw、suid ) |
exec | バイナリの実行を許可 |
noexec | バイナリの実行を禁止 |
ro | 読み取り専用モードでマウント |
rw | 読み書き可能モードでマウント |
unhide | 隠しファイルも表示 |
suid | SUIDとSGIDの有効化 |
user | 一般ユーザーにマウントを許可する |
users | 一般ユーザーにマウントを許可し、マウントを実行していないユーザにもアンマウントを許可 |
nouser | 一般ユーザーのマウントを許可しない |
コメント