実行環境
実行環境
項目 | |
---|---|
マシン | HP ENVY TE01-0xxx |
OS | ubuntu 20.04 LTS Focal Fossa |
CPU | Intel Core i7-9700 CPU 3.00 GHz |
RAM | 32.0 GB |
GPU | NVIDIA GeForce RTX 2060 SUPER |
1
2
3
4
5
6
7
8
% lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.3 LTS
Release: 20.04
Codename: focal
% uname -srvmpio
Linux 5.13.0-27-generic #29~20.04.1-Ubuntu SMP Fri Jan 14 00:32:30 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
Table of Contents
1. やりたいこと
- ST2000DM008 BarraCudaシリーズ 2TB 3.5インチ SATA 7200rpm をUbuntu 起動時にマウントしたい
2. マウントとは?
マウントとは, ハードディスクやUSBメモリなどドライブを利用するための仕組みです(= ドライブはマウントしないと使えない). Linuxプログラム目線でいうと, ファイルシステムの管理というトピックの中の命令(ファイルシステムの結合命令)としてマウントがあります. ですのでまずマウントコマンドを説明する前に ファイルシステムとはなにかというところから説明します.
ファイルシステムとは?
ファイルシステムとは, 「ファイル」というインターフェースをユーザーやアプリケーションに提供する仕組みのことです. ファイルシステムのおかげで以下のことがユーザーはできます:
- 記憶装置の種類の違いや記憶装置にデータがどのように記録されているか意識することなく, データをファイルという 仮想的な容器に格納したり取り出す
- ファイルをディレクトリにまとめる(=ファイルの管理性の向上)
- ファイルをアクセス権で保護する(=セキュリティ確保)
ファイルシステム同士の互換性
利用できるファイルシステムはOSによって違います. Linuxが扱うことができるファイルシステム種類例は以下です:
ファイルシステム | 説明 |
---|---|
ext4 | Linuxの標準的なファイルシステム ext3に比べてストレージサイズが大きく進化 4Kブロックサイズが標準 |
ext3 | ext4の古いバージョン |
NTFS | Windowsのファイルシステム |
XFS | RHELやCentOSのデフォルト |
VFAT | SDカードやフラッシュメモリで使われるファイルシステム |
ファイルシステムの異なるWindows, Mac, Linuxなどは, 基本的にそのままではお互いのファイルを利用することはできません. ファイルをやり取りするためには, 専用のアプリケーションを使うか, 互換性のあるファイルフォーマットを使用します.
なぜ一つのOSで異なるファイルシステムが共存できるのか?
parted -l
コマンドを使ってパーティション情報を見てみると, 自分の環境ではext4
, fat32
, ntfs
といった
ファイルシステムが確認できます. ファイルシステムの種類が違えば, メタデータの構造が違うので, 根本的にファイルに対するアクセス方法は
違うはずなのですが, 普通にファイルアクセスはできます.
これはLinuxカーネルが「仮想ファイルシステム(VFS)」という多種類のファイルシステムについて共通インターフェイスを提供してくれているからです.
デバイスファイル
Linuxでは, HDDやSSD, USBメモリといったデバイス(=ドライバ)に対応するデバイスファイルが用意されています. デバイスファイルは各種ハードウェアの入出力を扱うための特殊ファイルです. ファイルシステムによってデバイスデータがデバイスファイルとして管理され, そのためデバイス操作(データの入出力)が普通のファイル操作 と同じ感覚で実行できるようになっています.
Linux ではデバイスファイルは /dev
ディレクトリに存在します.
/dev/sda |
1番目に認識されたSATA/USBドライブ |
/dev/sda1 |
/dev/sda に作られた1番目のパーティション |
/dev/sdb |
2番目に認識されたSATA/USBドライブ |
/dev/sdc |
3番目に認識されたSATA/USBドライブ |
/dev/sr0 |
1番目に認識されたDVD/BDドライブ |
mount
コマンド
mount
は, HDDやUSBメモリ, DVD-ROMなどのフォーマット済みの領域(ファイルシステム)を指定したディレクトリ(= mount point)と
一時的に結び付けてアクセスできるようにするコマンドです.
1
mount -t <filesyetem type> <device file path> <mount point>
主要オプション
-t |
--types |
マウントするファイルシステムの種類を指定する(「,」区切りで複数指定可能、「~以外」としたい場合はnoを付ける、autoで自動判定 ※3) |
-r |
--read-only |
読み込み専用でマウントする(「-o ro」相当) |
-w |
--rw 、`–read-write |
読み書き可能な状態でマウントする(デフォルト) |
-f |
--fake |
実際にはマウントしない(実行内容を確認したいときに使用) |
マウントを削除したい場合
1
umount <mount point>
アンマウントが実行されたかどうかは, ls
コマンドで内容を参照できるかどうかで確認できます.
なお, アンマウントできるのは, そのディレクトリが使用されていない状態のときだけで, ディレクトリを参照している
プロセスがある場合は アンマウントできません.
3. mount
コマンド:実践編
デバイスファイルの確認
parted -l
コマンドですべてのブロックデバイスのパーティション情報を表示することができます(fdisk -l
でも可能).
1
2
3
4
5
6
7
8
9
10
% sudo parted -l
Model: ATA ST2000DM008-2FR1 (scsi)
Disk /dev/sda: 2000GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 2000GB 2000GB ntfs Basic data partition msftdata
(略)
一時的なマウントの実行
1
2
% mkdir mnt/share_01 ###mount pointの作成
% sudo mount /dev/sda1 mnt/share_01
システム起動時のマウント設定
システム起動時にマウントを実行したい場合は. 設定を/etc/fstab
に記載します.
記載すべき内容は以下,
1
<file system> <mount point> <type> <options> <dump> <pass>
<file system> |
デバイスファイル名(PATH), UUIDのいずれかを指定 |
<mount point> |
マウントポイント |
<type> |
ファイルシステムの種類 |
<options> |
マウント時のオプション, 複数指定する場合はカンマ(, )で区切って指定 |
<dump> |
バックアップコマンドdump の対象とするか否かの設定0または無記述の場合はdump不要のファイルシステムであると見なされる |
<pass> |
システム起動時にfsck チェック(ファイルシステム整合性確認)を行うか否かの指定 |
デバイスのUUIDの確認
デバイスファイルは別のディスクに置き換わる可能性があるので今回はUUIDベースで設定したいと思います.
UUIDの確認はblkid
コマンドを用います.
1
% blkid /dev/sda1
今回の設定例
1
UUID=hogehoge /mnt/share_01 auto nosuid,nodev,nofail,x-gvfs-show 0 0
番外編: GUIでの設定
GNOME DisksとはUbuntuのストレージ管理ツールです.
GUIでの設定内容を/etc/fstab
に保存してくれるので便利です.
起動コマンドは以下,
1
% sudo gnome-disks
Appenidx
HDD?SSDとは?
ハードディスクドライブ (Hard Disk Drive, 略して HDD) は磁気を用いてデータを記録する装置です.HDD の内部には金属製の円板が何枚か入っており,ヘッドと呼ばれる装置で磁気を書き込むようになっています.円板の上にたくさんの小さい磁石が並んでいて,この磁石の向きでデータを記憶しています.HDD の中でデータを記憶する円板の 1 枚 1 枚をプラッタといいます.HDD の記憶容量を増やすにはプラッタの枚数を増やす方法と 1 プラッタあたりの記憶容量を増やす方法があり,この両方を進めることで HDD の容量増加が図られてきました.
ソリッドステートドライブ (Solid State Drive, 略して SSD) は可動部を持たないドライブという意味で,フラッシュメモリなどの装置を使ってデータを記録します. HDD に比べて優れた点の 1 つは,HDD のヘッドのような動くパーツを持たないということです.したがって物理的な衝撃に対して SSD は HDD よりも優れています.また SSD は一般に HDD よりデータ読み書きの速度が速いとされています.
どのようにデータを記録しているかのイメージは以下のYoutube videoがおすすめ.
2種類のデバイス: 「キャラクター型」と「ブロック型」
Linuxではデバイスを主に「キャラクター型」と「ブロック型」の2種類に分類します.
キャラクター型
- シリアル回線や端末のようにデータを1 byteずつ入出力するタイプのデバイス.
- データは基本的にバッファーされない
ブロック型
- ハードディスクのように固定長のデータ(ブロック)単位に入出力するタイプのデバイス
- データは基本的にバッファーされる
Refereneces
参考書籍
オンラインマテリアル
(注意:GitHub Accountが必要となります)