non vorrei lavorare

昔はおもにプログラミングやガジェット系、今は?

シリコンパワー SSD M.2 2280 120GB SATA III 6Gbpsを買ってUbuntu 16.04LTSをコピった件

こんばんは、インフルエンザは陰性でしたが、夕方になると熱が上がる次男と実家に来ている@kjunichiです。

背景

2017年末に自作したものの、なんにもアップグレードできていなくて、何かできないかと考えていた。 Xeonなのでメモリが4枚単位なのを知らずに2枚で組んでおり、メモリを増設したいところだが、 値下がりどころか値上がりする一方で、これは、しばらく諦めてる。

Linuxが30Gしかなくて、領域が手狭であった。128GBのM.2 SSDが7千円を切る値段でアマゾンで 売っていたので、Linuxの探検範囲を広げるべく、奥さんにもこの値段なら怒られないだろうという事で、 試してみた。

我が家初のM.2 SSD

シリコンパワー SSD M.2 2280 120GB SATA III 6Gbps

NVMeにしたかったが、SATAに甘んじた。。

使い道

!注意! 以下の/dev/sd*の表記は今回の環境なので、各人の環境毎に異なります。間違えると大惨事。。

Linuxが30Gしかなくて、領域が手狭であった。TensorflowをGPUで動かせる程度までUbuntu16LTSを メンテしていたので、横着して

dd if=/dev/sdc of=/dev/sda

SSD丸ごとコピーを実行。その後、fdiskでルートパーティションの/dev/sda3を一旦削除して、 新しい、M2のSSDの領域全部使うようにパーティション作り直そうとするが、wコマンドでエラーが 出て書き込めない。。

partedで同様の作業を試み、パラメータ変だから修正するかにFIXと答え、無事パーティション作成できた。

ルートパーティションの/dev/sdc3を/dev/sda1に

dd if=/dev/sdc3 of=/dev/sda3

ここで、/dev/sda3の容量不足と怒られ、何度かやって、ハタと起動してる/dev/sdc3だからダメなのでは?

という事で、UbuntuのインストールUSBを作成して、このインストールUSBでライブ起動して、再度

dd if=/dev/sdc3 of=/dev/sda3

今度は無事コピー完了。

PCを再起動して、ブートメニューでM2のSSDを選んでブート!

起動を確認して、再起動して、再びインストールUSBで起動して、sda3の領域をM.2 SSDの最大サイズまで 以下の記事のようにコマンドで広げた。

resize2fs /dev/sda3

トラブル

久しぶりにLinuxのインストールっぽい事やって、戸惑いながらも、まずまずじゃないかと思っていたら、 トラブル。

古いSSDをブートで選択しても、新しいM.2 SSDLinuxが起動してしまう。 UEFIの設定をいじっていたら、Windows10まで起動途中で再起動する状態に。

UUID

どうやら、Windows10が起動できなくなった原因はUEFIRAID設定を有効にしてしまった為だと分かって、これは解決。

古いSSDから起動できない原因はUUIDまでも同じだったから。古いSSDLinuxもブートできるように これらのUUIDを振り直した。

UUIDを変更する際はドライブをマウントした状態ではできないので、前述のインストールUSBから起動して行った。

ブートパーティションのUUIDの修正

これには、hexeditで/dev/sda1を開いて、

に従い、リトルエンディアンなのを考慮してのバイナリ編集で対応。これは結構リスキーだw

LinuxのルートパーティションのUUIDの変更

LinuxのルートパーティションのUUIDの変更は以下のようにコマンドベースで比較的簡単に変更できた。

tune2fs -U `uuidgen` /dev/sda1

uuidgenなるコマンドで生成でき、これをtune2fsコマンドで書き込むっぽい。

grub.cfgの修正

どうやら2箇所修正しないと、ダメな模様。

ブートパーティションの/dev/sda1のgrub.cfgとルートパーティションの/dev/sda3の二箇所 /dev/sda3側は、編集するなの警告が記載されているが、これは無視してどんどん修正した。

まとめ

なんとかいちからインストール作業をせずに既存の手狭だったSSDLinux環境をM.2 SSDに移行できた。 grub関連の知識も今回の作業で少し増えた。

スピードは、これまでの30GBのSSDとあまり変わらない体感速度な気がしている。

あくまでも、M.2規格のSSDをマーザーボードにくっつけたことに意義があるのだと。

[試して理解]Linuxのしくみ ~実験と図解で学ぶOSとハードウェアの基礎知識

[試して理解]Linuxのしくみ ~実験と図解で学ぶOSとハードウェアの基礎知識

関連記事

7年前の記事