自作 PC の FakeRaid へ Debian (Stretch) をインスコ
いやはや、久々にヤらかしてしまいました。
メールクライアント (evolution) なんて使わないから、と安易に apt purge してしまったら、大変なコトに。
パージ対象とした「Debian -- Details of package evolution-data-server in stretch 」は Gnome の要だったらしく、妙〜に削除ファイルが多いなぁ、と気が付いた時点で、時すでに遅し。
gdm までアンインスコされる始末で、もうね、か・な・り・の致命傷。
改めてパッケージ群を apt install し直して再起動しても、ログイン画面に辿り着くどころか、Systemd のサービスすら開始されず、万事休す
Ω\ζ°)チーン
ただ、ディスク (SDD×2台 & HDD×1台 構成) がクラッシュした訳ではないので、LiveCD でマウントして Chroot でメンテナンスしてやれば復旧できなくもないけど、そもそも散らかしっ放しの不要パッケージを整理し始めたのが事の発端だったのだから、イイ機会なので OS を再インストールするコトにしますた。
なので、再度こんなコトが起きた時の備忘録として、FakeRaid へのインスコ手順を書き残しておくよ!>> 未来の私
〈 手 順 〉
① LiveCD をダウンロード → Etcher で USB に焼く
ダウンロードし直すのは、何となく最新版の方が良さ気に思えるのでw
ちなみに、UI フレーバーはお好みで。私は Gnome をチョイス。
② LiveCD で起動 → FakeRaid をマウント
#!/bin/sh # LiveCD は dmraid=true が有効にならないので apt で補てん # 以下 sudo を省略 # apt update apt install dmraid /sbin/dmraid -ay /sbin/partprobe /dev/mapper/isw_xxxxxxxxx_SSD_RAID0
③ 念のため、/home と /etc をバックアップ
丸々バックアップするとサイズが巨大になってしまうので、Linuxbrew 等の「後でどーにでもなる」ディレクトリは除外して、設定ファイルに集中して保全する。
④ FakeRaid にインストール
(参考) Debian User Forums • View topic - FakeRAID + GPT + LVM on Wheezy
上記 URL から partprobe_files.tar.gz をダウンロード → 解凍
→ 抽出した partprobe, e-partprobe を USB ディスク等に予め収納しておくインストーラーで EFI ブートの debian をインストールする
→ しかし、インスコした debian は FakeRaid を認識できないので、LiveCD で再起動下記手順で FakeRaid を認識させる
#!/bin/sh # LiveCD は dmraid=true が有効にならないので apt で補てん # 以下 sudo を省略 # apt update apt install dmraid /sbin/dmraid -ay /sbin/partprobe /dev/mapper/isw_xxxxxxxxx_SSD_RAID0 # 当方自作 PC のディスク構成とマウントポイントは下記の通り # SDD 128GB × 2台 → FakeRaid で RAID0 → 256GB: / # HDD × 1台 → 32GB: Swap, 500GB: /var, 492GB: /home # mount /dev/mapper/isw_[a-z]{9}_SSD_RAID0p2 /mnt mount /dev/mapper/isw_[a-z]{9}_SSD_RAID0p1 /mnt/boot/efi mount /dev/sd[a-z][1-9] /mnt/var mount /dev/sd[a-z][1-9] /mnt/home # 実ディスク以外のマウント方法は Gentoo をリファレンスとした # (参考) https://bit.ly/2rgVYYh # mount --types proc /proc /mnt/proc for i in sys dev; do mount --rbind /$i /mnt/$i && mount --make-rslave /mnt/$i; done # cp /ANOTHER_USB/partprobe_files/partprobe /mnt/usr/share/initramfs-tools/hooks/ chmod 755 /mnt/usr/share/initramfs-tools/hooks/partprobe cp /ANOTHER_USB/partprobe_files/e-partprobe /mnt/usr/share/initramfs-tools/scripts/local-top/ chmod 755 /mnt/usr/share/initramfs-tools/scripts/local-top/e-partprobe # /usr/sbin/chroot /mnt update-initramfs -u exit
⑤ 再起動時の Failed to start Raise network interfaces
エラー表示ががウザいので対処する。 unix.stackexchange.com
#!/bin/sh # 以下 sudo を省略 # apt update apt install ufw ufw enable ufw default deny incoming ufw default deny outgoing ufw allow out "DNS" ufw allow out "WWW Full" ufw allow out from 10.0.1.53 to any app CIFS ufw status verbose # # source /etc/network/interfaces.d/* をコメントアウト nano /etc/network/interfaces # apt update apt list --upgradable -a apt purge thunderbird thunderbird-l10n-ja apt autoremove apt update apt list --upgradable -a apt upgrade
取りあえず、これで素の Debian が FakeRaid で起動可能となった。
以降、SSD 対策や AwesomeWM のインスコなどなど、環境回復のための設定作業の追記が続く予定。
⑥ (追記 2018/12/4) 環境回復のための設定作業
awesome WM
取りあえず、Gnome のままでは使い辛くて仕方ないので、先ずは WM をインスコ。
設定はデフォルトで不便を感じないので、弄らずそのまま。
WM 指定の方はログインマネージャーで指定。楽ちん。
UI フレーバーで Gnome をチョイスしているのは、この辺りの設定の楽さに起因。
#!/bin/sh # apt install git awesome awesome-extra
Linuxbrew
次にシェルを bash → fish 変更のためと、可能な限り sudo 回避のため Linuxbrew が必須。ただ、そのために止むを得ず curl, file, git は apt 経由で。
また、公式スクリプトとはいえ、実行ファイルでインストールするのは何となく気持ち悪いので、Alternative Installation を選択。
#!/bin/sh # apt install build-essential git clone https://github.com/Linuxbrew/brew ~/.linuxbrew/Homebrew mkdir ~/.linuxbrew/bin ln -s ~/.linuxbrew/Homebrew/bin/brew ~/.linuxbrew/bin/ # en_US.UTF-8 も有効化 /usr/sbin/dpkg-reconfigure locales eval $(~/.linuxbrew/bin/brew shellenv) brew doctor
fish & fisher
#!/bin/sh # brew install fish bc echo /home/user/.linuxbrew/bin/fish > /etc/shells chsh -s /home/user/.linuxbrew/bin/fish # curl https://git.io/fisher --create-dirs -Lo ~/.config/fish/functions/fisher.fish