Linux移行「次の段階編」|実際に何を確認し、どう復旧したのか
ここからは、今回の騒動を単なる失敗談で終わらせず、
「実際にLinuxで何を確認したのか」
を記録しておく。
検索でこの記事にたどり着いた人にも多少役立つよう、実際に使ったコマンドを整理しておく。
ただし、最初に重要な注意。
以下のコマンドを意味を理解せず、そのまま実行するのはおすすめしない。
特に、
/etc/fstabの編集- パーティション操作
mountumount- ディスクの縮小
は、間違えるとOSが起動しなくなる可能性がある。
今回の記事は「初心者向けの作業手順」ではなく、
実際にトラブルになったとき、何を確認したのかを記録したもの
として読んでほしい。
1.まずlsblk -fを見る
Linuxでディスク構成を確認する場合、最初に使ったのがこれ。
lsblk -f
表示例はこんな感じ。
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
sda
├─sda1 vfat FAT32 UBUNTU2401 88C4-7E0A
├─sda2 ext4 ... 32f7d7cb-cf06-4d9d-bcef-db2cba77940d
└─sda3 ext4 SPARE 3b7a871c-efc4-40e2-9d15-c1c369933cf8 /home
sdb
├─sdb1 ext4 ... 1e95fb35-2b11-4a92-a7eb-dee615890e58 /
└─sdb2 ext4 Zorin-DATA c0b56ad5-57e9-4dd8-8dab-f46baeaba7cc /media/...
ここで確認したいのは、
- どのディスクか
- どのパーティションか
- ext4なのか
- LABELは何か
- UUIDは何か
- どこにマウントされているか
である。
特に重要なのがUUID。
2.UUIDだけを確認したいならblkid
次に、
sudo blkid
を使う。
例えば、
/dev/sdb2: LABEL="Zorin-DATA" UUID="c0b56ad5-57e9-4dd8-8dab-f46baeaba7cc" TYPE="ext4"
のように表示される。fstabでUUIDを指定するときは、この値を使う。
3.現在のマウント状態を確認する
df -hも非常に重要だった。
df -h
例えば、
Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 120G ...
/dev/sdb2 ...
のように表示される。
ここで、
「このパーティションは実際にどこへマウントされているのか」
を確認する。lsblk -fとdf -hを組み合わせて見ると、かなり状況が分かりやすくなる。
4.fstabを見る
今回の核心だったのが、
cat /etc/fstab
である。
編集する場合は、
sudo nano /etc/fstab
などを使う。
ただし、ここはかなり重要。
fstabはシステム起動時のマウント設定そのもの。
1文字間違えるだけでも、起動時に問題が起こる可能性がある。
編集前にバックアップを取っておく方が安全だ。
例えば、
sudo cp /etc/fstab /etc/fstab.bak
としておけば、元ファイルを残せる。
5.fstabを変更したらmount -a
編集後、いきなり再起動しない。
まず、
sudo mount -a
を実行する。
これは、fstabに記載されたマウント設定をまとめて適用するための確認方法として使える。
ここでエラーが出たら、再起動する前に止まる。
これが重要だった。
6.systemdの警告が出た場合
今回、fstab変更後にsystemdが古い設定を使っている旨の警告が出た。
その場合は、
sudo systemctl daemon-reload
を実行する。
その後、
sudo mount -a
をもう一度実行。
エラーが消えたか確認する。
7.「mountできた」だけで安心しない
ここも今回の教訓。
sudo mount -a
でエラーが出なくても、
それだけで設定が完全に正しいとは限らない。
その後、
lsblk -f
と、
df -h
で、
意図したパーティションが、意図した場所にマウントされているか
確認する。
今回も、この確認が非常に重要だった。
8./homeが本当に別パーティションなのか確認する
例えば、
df -h /home
とすれば、/homeがどのファイルシステム上にあるか確認できる。
さらに、
findmnt /home
も便利。
例えば、
TARGET SOURCE FSTYPE OPTIONS
/home /dev/sdb2 ext4 rw,...
のように表示されれば、/dev/sdb2が/homeにマウントされていることが分かる。/homeの分離を確認するなら、このfindmntはかなり分かりやすいコマンドだと思う。
9.パーティション操作はLive USBから
今回、最終的にはLive USBから起動してパーティション操作を行った。
これは重要。
現在起動しているOSが使用中のパーティションを、そのまま自由に縮小・変更できるわけではない。
そのため、Live環境から起動して、対象パーティションをアンマウントした状態で作業する。
GUIならGPartedなどを利用できる。
今回も、
- Live USBから起動
- 対象パーティションを確認
- 使用中のシステムパーティションをアンマウント
- パーティションを縮小
- 空いた領域に新しいext4パーティションを作成
- 再起動
lsblk -fで確認
という流れになった。
ただし、パーティション操作は失敗するとデータを失う可能性がある。
必ずバックアップを取ってから行うべき作業である。
10.今回、最も重要だった確認方法
今回のようなディスク・マウント問題では、個々のコマンドを覚えるより、
複数のコマンドで同じ状態を確認する
ことが重要だと感じた。
例えば、
lsblk -f
で構成を見る。
次に、
df -h
で実際の使用状況とマウントポイントを見る。
さらに、
findmnt /home
で/homeだけを確認する。
そして、
cat /etc/fstab
で起動時の設定を見る。
つまり、
ディスク構成 ↓ lsblk -f 実際のマウント状態 ↓ df -h 特定ディレクトリのマウント ↓ findmnt /home起動時の設定 ↓ /etc/fstab
という感じで、それぞれ違う角度から確認する。
これが今回かなり役に立った。
11.初心者が最初に覚える必要はない
ここまで読むと、
「Linuxって、こんなにコマンドを覚えないといけないのか?」
と思う人もいるかもしれない。
私自身、今回かなり勉強になった。
でも、結論としては、
最初から全部覚える必要はない。
普通にZorin OSを使うだけなら、
ファイルマネージャーを開いて、
アプリをインストールして、
設定をして、
必要なファイルを扱う。
それでいい。
問題が起きたときに、
lsblk -f
や、
df -h
を覚えればいい。
さらに必要になったら、
findmnt
や、
blkid
を使えばいい。
Linuxは、
必要になったところから覚える
くらいでちょうどいい。
12.今回の失敗から得た「安全策」
今後、Linux環境でディスク関連の変更をする場合は、少なくとも次の順番を守ることにした。
① まずバックアップ
重要データがあるなら、先にバックアップ。
今回もバックアップの重要性を再認識した。
② 現在の構成を確認
lsblk -f
df -h
findmnt
③ 変更前に設定を保存
例えば、
sudo cp /etc/fstab /etc/fstab.bak
④ 変更後は再起動しない
まず、
sudo mount -a
などで確認。
⑤ マウント状態を再確認
lsblk -f
df -h
findmnt /home
⑥ 問題があるなら、そこで止める
これが一番重要。
「せっかくだからもう少しやってみよう」
が、一番危険だった。
13.GPT相談室からの反省
今回、ユーザー側だけを責めるのも少し違う。
Linuxに慣れてきた段階で、
「/homeを別パーティションにするのも勉強になる」
という方向へ話を進めてしまった。
もちろん、技術的には意味のある構成だ。
しかし、今回の目的とユーザーのスキル、そして移行初期というタイミングを考えると、
「今やる必要はない」
と、もっと強く止めるべきだった。
特に、
という状況なら、
まずは安定した標準構成で使い始める方が優先順位として正しい。
これは今回のGPT側の反省点でもある。
14.そして、最終的に分かったこと
今回の騒動を経験して、Linuxに対する見方が少し変わった。
Linuxは難しい。
でも、難しいからダメなのではない。
内部の仕組みが見えやすいから、深く入ろうと思えばどこまでも入っていける。
その一方で、
普通に使うだけなら、そこまで深く入る必要はない。
ここを区別することが大切なのだと思う。
私の場合、
Linuxを研究することが目的ではない。
Linuxを土台にして、
ブログを書き、プログラムを作り、パソコンを普通に使うこと
が目的だ。
だから、今後は、
必要になったら勉強する
を基本方針にする。
おわりに
今回の一件は、Linux移行の序盤としてはかなり濃い経験になった。
最初は、
「Zorin OS、思ったより簡単やん」
だった。
そこから、
「/homeを分離してみよう」
となり、
「特殊ファイルはコピーできません」
「UUIDは……」
「fstabは……」
「mount -aは……」
「systemdが……」
「Live USBで……」
「え? CapsLockまで?」
となった。
そして最後は、
「もうええ。普通に使おう」
である。
(笑)
でも、これでいいのだと思う。
Linuxの奥深さを少し知った。
しかし、それに深入りすることを目的にはしない。
OSはあくまで土台。
これから本当にやりたいことは、その上にある。
ブログもある。
プログラムもある。
まだ作りたいアプリもある。
WindowsからLinuxへ移行するという今回の計画も、ようやく本来の軌道に戻った。
今回の騒動を一言で締めるなら、
できるようになったからといって、やらなければならないわけではない。
これをLinux移行初期の教訓として、記録しておくことにする。
以上、GPT相談室スタッフのレポートでした(^。^)
コメント