こんにちは,changです.
前回失敗してしまった*1ので,再トライです. Ubuntuを20.05LTSに更新するに当たり,せっかくなのでデータファイルを維持したままやってみます. ほぼ自分用のメモですが,PC自作一般論も踏まえて記事にします.
1. システムファイルとデータファイル
スマフォ世代の若者にとってはもはや死語かも知れませんが,システムファイルとデータファイルという概念があります.
システムファイルは,OSやソフトウェアを成すファイルです. Windowsであれば,C:\WindowsやC:\Program Filesに入っています. システムファイルの一部を誤って消したりすると,OSやソフトが正しく動かなくなります. この為,近年のOSの多くが,PCユーザーがシステムファイルを触れない様な作りになっています.
データファイルは,ユーザーが作って保存したデータです. WordやExcelで作ったファイルとか,画像データ等を刺すと思って差し支え無いと思います. データファイルは,消えたからと言ってパソコンが動かなくなる事はありません. しかし,ユーザーにとっては消えて欲しくないデータです. この為,パソコンが壊れたり買い替えた場合に,多くの方がデータファイルを新マシンに移行するかと思います.
ノートパソコンをお使い場合,外付けのハードディスクやクラウドストレージに一時的にデータを回避するやり方が簡単です. デスクトップで同じ方法をとっても構いません. しかし,複数のハードディスクを挿せるデスクトップの特徴を生かして,PC内にデータを残したまま更新する事も出来ます. 以下で具体的に考えていきます.
2. ストレージ構成案
PC内にデータファイルを残したままOSだけを更新する方法は,幾つかあります.
(1) Uploaderを使う
前回失敗してしまったのがこれです. do-release-upgradeを使ってUbuntu 18.04LTSから20.04LTSに更新しようとしました. 正直,駄目モトでやりました. システムが壊れてOSを入れ直すのは,Linuxでは日常茶飯事です. そう思える人間だから,PC自作を続けられています. また,失敗してしまったので分からなかったのですが,do-release-upgradeはソフトウェアやドライバを勝手に適正ver.に替えるのだと思います. 一見便利な様ですが,ディープラーニングとかをやっている人間からすると微妙です. 失敗して良かったかも知れないですね.
Uploaderを否定する様な事を書きましたが,WindowsやMacでは仕組みが充実しています. Windows 11への更新もwindows updateで出来る様です. 勿論バックアップ推奨ですが,それなりに楽観的に使って良いかと思います.
(2) 単一ハードディスク内のパーティションを使う
パーテションというのも死語かもですが,,,ハードディスクを指定した領域に区分けて別ドライブとして使うテクニックです. 一般的に,ハードディスクが壊れるとディスク内の全てのデータがお釈迦になります. パーテイションを切っておくと,破損がパーテイション内に留める可能性が高くなります. この為,市販PCの多く(?)がパーテイションを採用し,システムファイルとデータファイルを別ドライブに保管する構成になっています.
(3) 複数ハードディスクを使う
(2)で,ストレージの破損を一部の領域に限定する為の防波堤として,パーティションを紹介しました. これを更に強固にするのが,ハードディスクそのものを分けてしまうやり方です. ハードディスクが別れていれば,パソコン内の全体がウィルスで駆逐されたり,余程の過電流が流れたりしない限り,破線が食い止められると思います.
また,今でこそテラバイトレベルのSSDも簡単に買える様になりましたが,一昔前は手を出せるSSDといえば256GBでした. この為,システムファイルをSSDに,データファイルを大容量HDDに入れるのが定石でした. これは今でもある程度正しいと思います.
という所で,今回は(3)を採用します. 現在の環境が完全に無くなってしまうのは怖いので,システムファイル用のSSDを新規で購入しました. データファイルは,元々使っていたHDDで運用します.
※ 余談ですが,大容量のSSDには今の所興味がありません. データファイルをSSDに入れるメリットを感じないからです. 静音性と省電力(=みせかけのエコ)くらいかな?
(4) おまけ: データファイルをクラウドストレージで運用する
昨今の薄型ラップトップやスマフォはデータファイルをOneDriveやiCloudに入れるのが前提の様な構成になっています(なっているモノもあります). 以前に言及しました*2が,,,個人的にはメーカーの策略だと思っています.
クラウドストレージは確かに便利ですが,毎月のカード支払い(=サブスクリプション費用)を細かくチェックするのが面倒な無精者には向かないですね.
3. 更新
前置きが長くなりましたが,ここからが本題です.今回のポイントは下記です.
- PCには500GBのSSDと6TBのHDDがそれぞれ1本ずつ入っている
- SSDを交換し,新OS(=システムファイル)をインストールする
- 古いSSDをキープして,暫くは旧OSを動かせる様する
- HDDは元々3TBづつにパーテションされており,片方が旧OSの/homeにマウントされている
- 旧OSの/home内のシステムファイルをそのまま使用する
(1) OSインストール
下記の内訳でパーテションしました.
容量 | ファイルタイプ | マウント |
---|---|---|
350GB | ex4 | / |
100GB | ex4 | /home |
49.9GB | swap | |
0.1GB | EFI |
Note:
/homeをHDDに指定せず,敢えてSDD内に小さめに確保しました.
HDDにしてしまうと,HDDが壊れた時に起動しなくなる為です.
(2) HDDをマウントする
/etc/fstabにHDD内の2つのパーティションを追記
/# sdb1 PARTUUID=82c0b80a-****-****-****-************ /mnt/DATA1 ext4 defaults 0 0 # sdb2 PARTUUID=955b7183-****-****-****-************ /mnt/DATA2 ext4 defaults 0 0
Note:
UUIDでは無くPARTUUIDを指定します
マウントされているか確認
$ sudo cat /etc/mtab
ファイル権限を付与
$ sudo chown -R user_name:user_name DATA1 $ sudo chown -R user_name:user_name DATA2
(3) データファイルをリンクする
旧/home内の個々のディレクトリにシンボリックリンクを貼ります.例えば:
$ cd ~/ $ ln -s /mnt/DATA1/user_name/Python
Note:
個々のディレクトリをリンクすると面倒な感じがしますが,運用面ではベストだと思っています.
HDDが無くなっても起動に影響が出ませんし,現在使っていないパーテションや将来的に追加したHDD内の領域も等しく使える為です.
DocumentsやDownloadsの中身が必要であれば,直接コピーします.例えば:
sudo cp /mnt/DATA1/user_name/Downloads/* /home/user_name/Downloads/
4. むすび
ここからソフトウェア環境の整備する必要がありますが,次回にします. ぱっと使った感じ,Ubuntu 20.04はなかなか良いです.