(W&I) you know something?

Use it for myself.

自作 PC の FakeRaid へ Debian (Stretch) をインスコ

Debian

いやはや、久々にヤらかしてしまいました。

メールクライアント (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

  1. 上記 URL から partprobe_files.tar.gz をダウンロード → 解凍
    → 抽出した partprobe, e-partprobe を USB ディスク等に予め収納しておく

  2. インストーラーで EFI ブートの debian をインストールする
    → しかし、インスコした debian は FakeRaid を認識できないので、LiveCD で再起動

  3. 下記手順で 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 経由で。

github.com

また、公式スクリプトとはいえ、実行ファイルでインストールするのは何となく気持ち悪いので、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

github.com

#!/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
© toomores_such