なんとな~くしあわせ?の日記

「そしてそれゆえ、知識そのものが力である」 (Nam et ipsa scientia potestas est.) 〜 フランシス・ベーコン

HDDからディスク容量の小さいSSDに移行した

メインPCのCPUをRyzen 5 3600に移行した話の続き
nantonaku-shiawase.hatenablog.com

  • SSD 660p Series SSDPEKNW512G8XT」とかいう超速いSSDを入手したが、元のHDDのブートディスクが2TBデータを持っているのに対してSSDは512GBしかない
  • どうやってデータ移行して起動できるようにするかという話

gpartedでefi用の領域を用意する

以降、SSDのデバイス名を「/dev/nvme0n1」として記載

  • GPTのエントリを書き込む
$ sudo gdisk /dev/nvme0n1
w

容量200MB程度
Partition Name:『ESP』
基本パーティション
ラベル:『ESP』
ファイルシステム:『FAT32

applyしたあと、作られた領域を右クリックして、『フラグを編集』をクリック。 

  • 『boot』
  • 『esp』

の二つにチェックマークを付る

上記で2つのパーティションができる。以降、efi用の領域を「/dev/nvme0n1p1」、データ用の領域を「/dev/nvme0n1p2」として手順を記載する。

rsyncでデータ用の領域を同期

// コピー先SSD
$ sudo mkdir /mnt/ssd
$ sudo mount /dev/nvme0n1p2 /mnt/ssd
// コピー元HDD
$ sudo mkdir /mnt/hdd
$ sudo mount /dev/sda1 /mnt/hdd

// rsyncドライラン
$ sudo rsync -avr --owner --group --dry-run /mnt/hdd /mnt/ssd

// rsync実行(全体の進捗を出す、圧縮させると重いので-zはつけない)
$ sudo rsync -ar --info=progress2 --owner --group /mnt/hdd/ /mnt/ssd/

grubのインストール

grubをインストールする

// grub2の準備
$ sudo apt-get install grub-efi-amd64-bin

// chrootする(rootで実行していく)
$ sudo su

// データ用の領域をマウントする
# mkdir /chroot
# mount /dev/nvme0n1p2 /chroot

// プログラム実行に必要なものをbind
# mount --bind /dev /chroot/dev
# mount --bind /dev/pts /chroot/dev/pts
# mount --bind /proc /chroot/proc
# mount --bind /sys /chroot/sys
# mount --bind /run /chroot/run
# chroot /chroot

chrootしたらefi用の領域をマウント

// 無ければ /boot/efi は作っておく
# mkdir -p /boot/efi
# mount /dev/nvme0n1p1 /boot/efi

空のEFI領域にブートプログラムであるところのgrubをインストール

# grub-install --target=x86_64-efi --efi-directory=/boot/efi --recheck
# ls -l /boot/efi/EFI/debian/
合計 5202
-rwxr-xr-x 1 root root     108  227 00:40 BOOTX64.CSV
-rwxr-xr-x 1 root root 1206824  227 00:40 fbx64.efi
-rwxr-xr-x 1 root root     117  227 00:40 grub.cfg
-rwxr-xr-x 1 root root 1533296  227 00:40 grubx64.efi
-rwxr-xr-x 1 root root 1261192  227 00:40 mmx64.efi
-rwxr-xr-x 1 root root 1322936  227 00:40 shimx64.efi

/etc/fstabの編集

  • /etc/fstabを以下のように編集し、再起動
  • 起動するディスクはefiをインストールしたやつにする
  • 事前にsudo blkid /dev/nvme0n1p1, sudo blkid /dev/nvme0n1p2 しておきPARTUUIDを記録しておく
$ sudo cat /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system>                               <mount point> <type> <options>         <dump> <pass>
PARTUUID=6e1ae4f9-bf29-4d76-a1b5-bfed57c80ee1 /boot/efi     vfat   errors=remount-ro 0      2
PARTUUID=ac09284a-8f98-46e0-a613-04f2b5621055 /             ext4   errors=remount-ro 0      1

くぅ~疲れましたw これにて完結です!

メインPCのCPUをRyzen 5 3600に移行した

前回CPUとマザーボードを変更したのが2013年なので、8年ぶりにCPU買った…
nantonaku-shiawase.hatenablog.com

PCの構成

CPU : AMD Ryzen 5 3600 BOX

M/B : B550M Steel LegendRAM : W4U2666CM-16G [DDR4 PC4-21300 16GB 2枚組]SSD:

  • SSD 660p Series SSDPEKNW512G8XT

INTEL 3D NAND技術を搭載 インテル®SSD660Pシリーズ SSDPEKNW512G8XT

INTEL 3D NAND技術を搭載 インテル®SSD660Pシリーズ SSDPEKNW512G8XT

  • 発売日: 2018/09/22
  • メディア: Personal Computers

  • WD Blue 3D NAND SATA WDS500G2B0A

電源 : SST-ST55F-G(8年経過しているが続投、そろそろ変えたほうがよさそう)
ケース: SST-GD08B(8年経過しているが続投、どうしようかなこれも…)
CD/DVDドライブ:適当に余っているもの
ディスプレイ、マウスキーボード:適当に余っているもの

CPUは以前から使いたいと思っていたAMDRyzenにした。もう少しお金を出して上位のエディションを買っても良かったが、まあ性能比較したときに十分向上してるからいいかなと思い、Ryzen 5 3600にした(あとパソコン工房でセールだったので)

これはクロック数が3.6GHzではあるが、A10 5800Kのコア数が4なのに対してRyzen 5 3600は6あるため総合的に見て速い。また、Ryzenのスレッド数は12である。

そして、A10が当時4万円だったのに対してRyzen5は2万5000円である。

Ryzen 5 3600 と A10 5800Kの比較

CPU | AMD A10-5800K vs AMD Ryzen 5 3600の比較

f:id:panzer-jagdironscrap1:20210221130305p:plain

  • CPUスレッドが12になるのは、見てみると結構すごい
    • 今まで4しかなかったスレッドが一気に12になったので見た目的にすごい
    • 実際使ってみるとninjaで並列ビルドしたときの速度が上がったり、Steamで激遅だったゲームがまともに動いたりした

f:id:panzer-jagdironscrap1:20210221131230p:plain
f:id:panzer-jagdironscrap1:20210221131422p:plain

トラブルシュートや改善

B550M Steel LegendのNICのドライバがない

Linuxあるあるですが、起動時にマザーボードについてるNICのドライバがないためにsystemdのnetworking.serviceが開始できず、リカバリモードで起動した。
とりあえずUSB-LAN変換ケーブルで外部ネットワークと通信。

$ sudo lspci | grep Ethernet
06:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. Device 8125 (rev 05)

Realtekの8125というやつらしい

Realtek 8125を使えるようにする

Realtek 8125 NIC をCentOS8で動かす - Qiita を参考に

$ cd ~/Downloads/
$ tar xvf r8125-9.005.01.tar.bz2 
$ cd r8125-9.005.01/
$ sudo ./autorun.sh 
$ sudo depmod -a
Realtek 8125をDKMSに登録して自動で配備

自動的にドライバを更新させたいのでDKMSを使う。kernel update時にRealtek 8125 NICのドライバを自動コンパイルする - Qiita を参考に

// ドライバのソースコードを/usr/srcへ移動
$ tar xvf r8125-9.005.01.tar.bz2
$ sudo mv r8125-9.005.01 /usr/src

// vim /usr/src/r8125-9.005.01/src/Makefile
-       BASEDIR := /lib/modules/$(shell uname -r)
+       BASEDIR := /lib/modules/$(KVER)

// dkms.confの作成
$ cat /usr/src/r8125-9.005.01/dkms.conf
PACKAGE_NAME="r8125"
PACKAGE_VERSION="9.005.01"
BUILT_MODULE_LOCATION[0]="src"
BUILT_MODULE_NAME[0]="r8125"
MAKE[0]="'make' KVER=${kernelver} modules"
CLEAN="make clean"
DEST_MODULE_LOCATION[0]="/updates/dkms"
AUTOINSTALL="yes"

// DKMSへの追加、ビルド、インストール
$ sudo dkms add -m r8125 -v 9.005.01
$ sudo dkms build -m r8125 -v 9.005.01
$ sudo dkms install -m r8125 -v 9.005.01

これでカーネルを更新したら自動でドライバが適用される。

ZENカーネルを使用する

Ryzen - ArchWiki

最適な性能を得るには linux-zen カーネルをインストールします。Linux ZEN はあらゆるプロセッサで優れた速度と安定性を提供します。デフォルトカーネルと同じ電力を消費するためデスクトップで使用する場合のみ推奨です。

linux-zenの導入について | 点と接線。
Liquorix Kernel

Liquorix Kernelというやつがいいらしいので、後先考えずぶっこんでいく

$ curl 'https://liquorix.net/add-liquorix-repo.sh' | sudo bash
$ sudo apt-get install linux-image-liquorix-amd64 linux-headers-liquorix-amd64

M.2をつかって動作させるSSDのR/W性能がヤバイ

今回はM.2 SSDを流れで購入したのだが、この記事によるとM.2を使うとSSDのREADが3GB/秒でできるらしい。やべえ…これもうRAMでしょ…
kaworu.jpn.org

cryptographyがRustを依存先にもったためpipが失敗するようになった

github.com

コメントから
https://github.com/pyca/cryptography/issues/5771#issue-803350135

新しく追加されたRustへの依存により、サポートされている多くのGentooアーキテクチャ(およびこれらは実際にcryptographyに依存するPythonパッケージを使用するアーキテクチャ)のcryptographyをパッケージ化できなくなったことを報告します。

プラットフォームサポートをご覧ください。 いくつかのターゲットを「Tier3」に劣化させることに加えて、Rustは少なくともalpha、hppa、ia64、m68k、s390(-xではない)を完全にはサポートしていません。 暗号化のCコードをこれらのプラットフォームに調整するコスト(これまでのようにそのままでは機能しないと想定した場合でも)は、Rust全体を移植するコストよりもはるかに低くなります。 暗号化を取り戻すためだけに、ボランティアがRust全体を他のアーキテクチャに移植することを期待することはできません。

今のところ、Tier 1以外のアーキテクチャ(つまり、アップストリームがブートストラップバイナリを提供しない場合)用にRustをパッケージ化することさえ非常に困難です。

とりあえず手元でもansibleのインストールとfabric2のインストールに失敗したぜ😭

どうすんのこれ…

まじでやばい…

対処
  • とりあえずcryptographyのバージョンを下げた