Linux コンピュータに新しいハード ドライブまたはソリッド ステート ドライブを追加しますか?
fstab
ファイルを編集する必要があります。多くの人はその考え自体が怖いと感じています。はい、正しく理解することが重要ですが、正しい知識があれば、実際には難しいことではありません。
fstab
ファイルを編集して新しいドライブをファイル システムに統合するプロセスを順を追って説明します。
fstab、ファイル システム テーブル
Linux コンピューターに新しいハード ドライブを追加することはそれほど複雑ではありませんが、初めて行う場合は少し混乱する可能性があります。ハードウェアを接続し、コンピューターの電源を入れ、オペレーティング システムにログインします。しかし、新しいドライブはどこにも表示されません。なぜ表示されないのでしょうか? Linux にドライブを「認識」させ、構成を開始できるようにするにはどうすればよいでしょうか?
実際、Linux はハードウェアを認識していますが、それをすぐには発表しません。あるいは、新しいハードウェアが見つかったというヒントを与えることもできます。
fstab
ファイルに入れる必要がある情報を取得するには、Linux に問い合わせる必要があります。
ここでは、Linux とあなたがそれを認識して使用できるように、新しいハード ドライブをセットアップする方法を説明します。このプロセスには 2 つの部分があります。最初の部分では、ハード ドライブを特定し、そのドライブに関する情報を収集するために偵察を行います。 2 番目の部分では、偵察段階で収集した情報を使用して
fstab
ファイルを編集します。
新しいドライブを見つける
このシステムに 2 つの新しいドライブを追加します。 1 つは 32 GB のメカニカル ハード ドライブ (HD) で、もう 1 つは 16 GB の ソリッド ステート ドライブ (SSD) です。
Linux がそれらを認識できること、および Linux がそれらにどのブロック デバイスを使用しているかを知る必要があります。 Linux および Unix に似たオペレーティング システムでは、ブロック デバイスは、(読み取り専用でない限り) データの読み取りおよび書き込みが可能なデバイスへのインターフェイスとして機能する 特殊なファイルです 。ブロック デバイスは、多くの場合、ある種の大容量記憶装置 (ハードディスクや CD-ROM 上のパーティションなど) を表します。ブロック デバイスは、
/dev
ディレクトリ。
lsblk
コマンドを使用すると、Linux コンピューターに接続されている
ブロック デバイスを一覧表示
できます。
lsblk
lsblk
からの出力は列単位で表示されます。
列は次のとおりです。
- 名前 : デバイス名です。 「sd」で始まり、その後に文字が続くデバイス名は 、SCSI ハードディスク を表します。この文字は個々のハードディスクを識別します。「a」が最初で、「b」が最初です。 2番目などです。数字が付加されている場合は、パーティションを示します。たとえば、「sdb2」は 2 番目の SCSI ハードドライブのパーティション 2 になります。
- Maj:Min : この列には、デバイスのメジャー番号とマイナー番号が保持されます。メジャー番号は、デバイスの種類 (より正確には、そのデバイスとの通信に使用されるドライバーの種類) を示します。マイナー番号は、そのタイプのデバイスの数のカウントです。
-
Rm
: この列は、デバイスが取り外し可能かどうかを示します。デバイス
sr0の値は 1 で、取り外し可能であることを示していることに注意してください。これはCD-ROMドライブです。 - サイズ : デバイスに保存できるデータの量です。
-
Ro
: この列には、読み取り専用デバイスの場合は 1、読み取り/書き込みデバイスの場合は 0 が表示されます。
loopデバイスは すべて読み取り専用です 。 - Type : デバイスのタイプを識別します。 「disk」エントリはディスク ドライブを意味し、「part」エントリはパーティションを表し、「rom」は 読み取り専用メモリ (CD-ROM) を意味します。
- Mountpoint : このデバイスがマウントされているファイル システム内のポイントを示します。これが空白の場合、デバイスはマウントされていません。
上のスクリーンショットでは、
loop
デバイスにはすべてメジャー番号 7 (
ループバック、ループ、デバイスを
意味します) が与えられ、マイナー番号は単純に毎回 1 ずつ増加することがわかります。ループデバイスは
squashfs
ファイルシステムで使用されます。
squashfs
ファイル システムは、
Snappy
パッケージ管理システムを使用してアプリケーションがインストールされるたびに作成されます。
SCSI ハード ドライブには
sda
、
sdb
、
sdc
などの名前が付けられ、メジャー番号はすべて 8 (SCSI ハード ドライブ) です。マイナー番号は 16 でグループ化されます。最初のドライブ
sda
のマイナー番号は 0 ~ 15 です。 0 は物理ドライブを表し、マイナー番号 1 はそのドライブ上の最初のパーティションを表します。 2 番目のドライブ
sdb
のマイナー番号は 16 から 31 までです。16 は物理ドライブを表し、17 はそのドライブ上の最初のパーティションを表します。次の 16 個の番号 (32 ~ 47) は、
sdc
などのマイナー番号に使用されます。
その他の一般的なメジャー番号は、3 ( IDE ハード ドライブ の場合)、および 11 (CD-ROM の場合) です。
実際、SDCSI CD-ROM ドライブの
/dev/sr0
スタイルは非推奨です。承認されている形式は
/dev/scd0
です。それにもかかわらず、
/dev/sr0
形式は、この記事の調査に使用されたすべてのマシンで依然として使用されていました。
カーネルのドキュメントには、メジャー番号とマイナー番号が取り得る すべての値の長いリスト が含まれています。驚くほど長いリストです。
lsblk
からの出力を整理するには、
grep
を使用して
興味のある項目
のみを選択します。ループ デバイスを追加していないことがわかっているので、すべての SCSI ハード ドライブを選択しましょう。これらの名前には「sd」が含まれることがわかっています。
lsblk | grep SD
このコマンドを実行すると、
grep
「sd」を含む行のみを出力します。テスト マシンでは次のように表示されます。
つまり、SCSI ドライブが 3 台あります。最初の
/dev/sda
は、ファイル システム
/
のルートにマウントされます。他の 2 つはまったくマウントされていませんが、これは新品のドライブでは当然のことです。ドライブ
/dev/sdb
のサイズが 32 GB であることがわかります。これは、これが従来の機械式ドライブであることを意味します。ドライブ
/dev/sdc
のサイズは 16 GB で、これが SSD ドライブです。
実際には、これは仮想コンピュータなので、これらも仮想ディスクです。したがって、SSD は SCSI メカニカル ドライブと同じように表示されます。私の通常のデスクトップでは、
NVMe SSD は
/dev/nvme0n1
として表示され、その最初のパーティションは
/dev/nvme0n1p1
です。メジャー番号は 259 です。これらの違いによって、
fstab
ファイルで行う必要がある内容は変わりませんが、SSD を使用している場合は、物理ドライブとして表示されないことに注意してください。
また、ドライブが新品であれば、おそらくパーティションはありません。必要に応じて、
fdisk
を使用してパーティションを作成できます。
回転ドライブと非回転ドライブの識別
lsblk
で
-o
(出力) オプションを使用し、
ROTA
(回転) 列を表示に追加すると、
lsblk
回転ストレージ デバイス (機械式ドライブ) を示すために 1 を使用し、非回転ストレージ デバイスを示すために 0 を使用します。 (ソリッドステートドライブ)。
lsblk -o +ROTA | grep SD
ディスプレイの右側に追加の列が表示されます。これは
ROTA
(回転) 列です。ご覧のとおり、「SSD」にはデバイスとパーティションに 0 が付いています。 SSD は回転しないストレージ デバイスであるため、これは当然のことです。
ファイルシステムのマウント
fstab
ファイルについて考え始める前に、ドライブを手動でマウントできることを確認してみましょう。こうすることで、
fstab
ファイルの使用時に何かが動作しない場合、問題はドライブ自体の問題ではなく、構文にあることがわかります。
/mnt
ディレクトリに一時的なマウント ポイントをいくつか作成します。
sudo
を使用する必要があり、
パスワードの入力を求め
られます。
sudo mkdir /mnt/scsi
sudo mkdir /mnt/ssd
次に、新しいマウント ポイントに SCSI ドライブをマウントしましょう。
mount
コマンドを最も単純な形式で使用します。マウントしたいパーティションの名前と、それをマウントしたいマウント ポイントを指定します。
mount
、指定したマウント ポイントでそのパーティション上のファイル システムをマウントします。
ドライブではなく、ファイル システムを保持するパーティションを指定しているため、パーティションを表す数字 (この場合は「1」) を必ず含めてください。
sudo マウント /dev/sdb1 /mnt/scsi
すべてがうまくいけば、
mount
からの応答はありません。何も表示されずにコマンド プロンプトに戻ります。
SSDの取り付けも同様に簡単です。どのデバイスにどのパーティションをマウントするか、およびそれをマウントするマウント ポイントを
mount
します。
sudo マウント /dev/sdc1 /mnt/ssd
繰り返しますが、沈黙は金です。
マウントの確認
マウントが行われたことを確認するために、再度
lsblk
を使用します。その出力を
grep
にパイプし、「sda1」、「sdb2」、および「sdc1」エントリを選択します。
lsblk -o +ROTA | grep sd[ac]1
mount
、マウントされた 3 つのパーティションを表示します。これが、今マウントした 2 つのパーティションと、/ にマウントされた元のパーティションです。
パーティション
/dev/sdb1
は
/mnt/scsi
にマウントされ、回転ストレージ デバイス上にあります。パーティション
/dev/sdc1
は
/mnt/ssd
にマウントされ、非回転ストレージ デバイス上にあります。すべて順調のようです。
ここで、コンピュータが起動するたびにこれらのデバイスがマウントされるように
fstab
ファイルを構成する必要があります。
fstab ファイル
fstab
ファイルには、コンピュータの再起動時にマウントされる各ファイル システムのエントリが含まれています。各エントリは 6 つのフィールドで構成されます。フィールドは次のとおりです。
- ファイル システム : その名前が示すように、パーティション上のファイル システムのタイプではありません (これがタイプ フィールドの目的です)。これは、マウントする必要があるパーティションの識別子です。
- マウント ポイント : パーティションをマウントするファイル システム内の場所。
- Type : パーティション上のファイル システムのタイプ。
- オプション : 各ファイル システムには、機能をオンまたはオフにするオプションを指定できます。
- ダンプ : ファイル システム全体をテープに「ダンプ」する、ファイル システムをバックアップするほぼ時代遅れの手段への言及。
-
Pass
: 「合格」フラグです。これは、
fsckを使用してどのパーティションのエラーをチェックする必要があるかを、 どの順序で Linux に指示します。メインのブート パーティションとオペレーティング システム パーティションは 1 にする必要があり、残りは 2 に設定できます。フラグが 0 に設定されている場合は、「まったくチェックしない」ことを意味します。ファイル システムがジャーナリング ファイル システム (ext2 や FAT16/32 など) ではない場合は、これを 0 に設定してオフにすることをお勧めします。
これらのフィールドはこの順序で指定する必要があり、間にスペースまたはタブを入れる必要があります。これらのフィールドの値、特に「オプション」フィールドの値を見つけるのは困難な場合があります。 「オプション」フィールドのオプションは、間にスペースを入れずにカンマで区切ったリストにする必要があります。
各ファイル システムの
man
ページには、使用できるオプションがリストされています。
ext4
には
約 40 のオプション
があります。より一般的なオプションのいくつかを次に示します。
- 自動: ファイル システムは起動時に自動的にマウントされます。
-
Noauto
: ファイル システムは、
mount -aコマンドを入力した場合にのみマウントされます。 - Exec : このファイル システムではバイナリの実行が許可されます。
- Noexec : このファイル システムではバイナリの実行は許可されません。
- Ro : ファイル システムは読み取り専用としてマウントする必要があります。
- Rw : ファイル システムは読み取り/書き込みとしてマウントされる必要があります。
- 同期 : ファイルの書き込みはバッファリングせずに直ちに実行する必要があります。フロッピー ディスクをまだ使用している人がいる場合は、フロッピー ディスク用に保存するのが最適です。パフォーマンスにペナルティが発生します。
- 非同期 : ファイルの書き込みはバッファリングされ、最適化される必要があります。
- ユーザー : すべてのユーザーがファイル システムをマウントできます。
- Nouser : root ユーザーは、このファイル システムをマウントできる唯一のユーザーです。
- デフォルト : これは、一連の共通設定 (rw、suid、dev、exec、auto、nouser、および async) を指定する短縮方法です。
-
Suid
:
suidビットとsgidビットの操作を許可します。suidビットは 、ユーザーに完全な root 権限を付与せずに 、通常のユーザーが root としてファイルを実行できるようにするために使用されます。ディレクトリにsgidビットが設定されている場合、そのディレクトリ内に作成されたファイルとディレクトリ のグループ所有権は、それらを作成したユーザーのグループではなく、ディレクトリの所有権に設定され ます。 -
Nosuid
:
suidビットとsgidビットの使用を許可しません。 - Noatime: – ファイル システム上のファイル アクセス時間を更新しません。これにより、古いハードウェアのパフォーマンスが向上します。
- Nodiratime : ファイル システム上のディレクトリ アクセス時間を更新しません。
- Relatime : ファイルの変更時刻を基準にしてファイルのアクセス時間を更新します。
「デフォルト」オプションは、開始時の優れた戦略です。微調整が必要な場合は、さらにオプションを追加または削除できます。必要な設定を、
fstab
ファイルに入力する必要がある順序で取得する適切な方法があればいいのですが。
mtab
ファイルを入力します。
mtab ファイル
mtab
ファイルは
、現在マウントされているファイル システム
のリストです。これは、ブート時にマウントする必要があるファイル システムをリストする
fstab
ファイルとは対照的です。
mtab
ファイルには、手動でマウントされたファイル システムが含まれています。新しいドライブはすでにマウントされているので、
mtab
ファイルに表示されるはずです。
cat
を使用して
mtab
ファイルの内容を確認できます。
grep
を介して出力をパイプし、
/dev/sdb1
と
/dev/sdc1
のみを確認することで出力を制限します。
猫/etc/mtab | grep sd[bc]1
出力には、これら 2 つのパーティションの
mtab
エントリが表示されます。
これらの値を持ち上げて
fstab
ファイルに直接ドロップし、各フィールドの間にスペースまたはタブがあることを確認します。そしてそれはそれでしょう。再起動するとドライブがマウントされます。
それには2つの注意点があります。 1つはマウントポイントです。新しいドライブに新しいパーティションをマウントできることを証明するために、一時的なマウント ポイントを作成しました。異なる場合は、一時的なマウント ポイントではなく実際のマウント ポイントを入力する必要があります。
2 番目の注意点は、
mtab
ファイルの設定を使用する場合、ブロック デバイス ファイルを各パーティションの識別子として使用することになるということです。これは機能しますが、新しい大容量記憶装置ハードウェアがコンピュータに追加された場合、値
/dev/sda
や
/dev/sdb
などが変更される危険性があります。これは、
fstab
ファイルの設定が正しくないことを意味します。
各パーティションには
Universally Unique Identifier
(UUID) があり、パーティションを識別するために使用できます。これは決して変わりません。 UUID を使用して
fstab
ファイル内のパーティションを識別すると、設定は常に正確かつ真実のままになります。
新しいパーティションを Redundant Array of Inexpensive Disks (RAID) システムの一部として使用している場合は、そのシステムのマニュアルを確認してください。 UUID の代わりにブロック デバイス識別子を使用する必要があることが指定されている場合があります。
パーティションの UUID を見つける
パーティションの UUID を見つけるには、
blkid
を使用して
ブロック デバイスの属性を出力します
。出力を新しいドライブ上の 2 つの新しいパーティションに制限します。
ブルキッド | grep sd[bc]1
出力には、各パーティションの UUID が含まれます。
PARTUUID は、 GUID パーティション テーブル (GPT) パーティション化方法 ( マスター ブート レコード (MBR) パーティション化方法を使用していない場合) で使用できる UUID の形式です。
fstab ファイルの編集
エディターで
fstab
ファイルを開きます。私たちは
gedit
を使用しています
。これは、ほとんどの Linux ディストリビューションに含まれている使いやすいエディタです。
sudo gedit /etc/fstab
エディターが表示され、
fstab
ファイルがロードされます。
この
fstab
ファイルには、すでに 2 つのエントリが含まれています。これらは、既存のハード ドライブ
/dev/sda1
上のパーティションとスワップ ファイル システムです。これらのエントリを変更しないように注意してください。
fstab
ファイルに 2 つの新しいエントリを追加する必要があります。 1 つは SCSI ドライブのパーティション用で、もう 1 つは SSD ドライブのパーティション用です。最初に SCSI パーティションを追加します。ハッシュ
#
で始まる行はコメントであることに注意してください。
-
「ファイル システム」フィールドでは、
blkidが以前に取得した UUID を使用します。 「UUID=」で行を開始し、UUID を貼り付けます。スペースまたはタブを押します。 -
「マウント ポイント」フィールドには、前に作成したマウント ポイント
/mnt/scsiを使用します。システムの適切なマウント ポイントを使用します。スペースまたはタブを押します。 -
「タイプ」には、パーティション上のファイル システムのタイプである
ext4を入力します。スペースまたはタブを押します。 -
「オプション」フィールドでは、 cat
/etc/mtabを使用して取得したオプションを使用します。これらは「rw,relatime」です。スペースまたはタブを押します。 - 「ダンプ」フィールドはゼロに設定されます。スペースまたはタブを押します。
- 「パス」フィールドはゼロに設定されます。
ここで、SSD ドライブ上の別の行に
fstab
エントリ パーティションを追加します。
-
「ファイル システム」フィールドに、SSD ドライブ上のパーティションに対して
blkidが取得した UUID を入力します。 「UUID=」で行を開始し、UUID を貼り付けます。スペースまたはタブを押します。 -
「マウント ポイント」フィールドには、前に作成したマウント ポイント
/mnt/ssdを使用します。スペースまたはタブを押します。 -
「タイプ」には、パーティション上のファイル システムのタイプである
ext4を入力します。スペースまたはタブを押します。 - 「オプション」フィールドでは、この例では 2 つの新しいエントリを異なるものにするためだけに、「デフォルト」オプションを使用します。スペースまたはタブを押します。
- 「ダンプ」フィールドはゼロに設定されます。スペースまたはタブを押します。
- 「パス」フィールドはゼロに設定されます。
ファイルを保存してエディタを閉じます。
再起動せずに fstab をテストする
新しいドライブをアンマウントしてから、
fstab
ファイルを強制的に更新できます。新しいパーティションのマウントが成功すると、入力した設定とパラメータが構文的に正しいことが検証されます。つまり、
fstab
ファイルは再起動または電源投入シーケンス中に正しく処理される必要があります。
SCSI ドライブをアンマウントするには、次のコマンドを使用します。 「umount」には「n」が 1 つだけあることに注意してください。
sudo umount /dev/sdb1
SSD ドライブをアンマウントするには、次のコマンドを使用します。
sudo umount /dev/sdc1
次に、
lsblk
を使用して、これらのブロック デバイスがマウントされているかどうかを確認します。
lsblk | grep SD
そして、ブロック デバイスがコンピューター内に存在しますが、どこにもマウントされていないことがわかります。
-a
(all) オプションを指定して
mount
コマンドを使用すると、
fstab
内のすべてのファイル システムを再マウントできます。
sudo マウント -a
そして、
lsblk
を使用して、新しいパーティションがマウントされているかどうかをもう一度確認します。
lsblk | grep SD
すべてはあるべき場所に取り付けられています。ここで行う必要があるのは、マウント ポイントの所有権を変更することだけです。変更しないと、新しいストレージ デバイスにアクセスできるのは
root
だけになってしまいます。
chown
使用すると、これを簡単に行うことができます。これは SCSI マウント ポイントのコマンドです。
sudo chown dave:users /mnt/scsi
これは SSD マウント ポイントのコマンドです。
sudo chown dave:users /mnt/ssd
追加したパーティションが自動的にマウントされ、それらにアクセスできることがわかっているので、安心してコンピュータを再起動できます。
結局のところ、それほど怖くない
大変な作業はすべて偵察段階にあります。それも難しくありませんでした。必要な情報を収集したら、
fstab
ファイルを編集するのは簡単です。準備がすべてです。
関連: 開発者と愛好家のための最高の Linux ラップトップ





