2016年12月21日 星期三

2016-12-20,電腦重裝 Gentoo -- 摘記

** 切記,裝好 kernel 和 grub 後,重開機前,一定要記得更改 root 的密碼。

將換下來的主機板 GA-X79S-UP5-WIFI 和 6核 CPU i7-3930K ,找個小孩買了沒在用的特大機殼裝起來後,就該重灌 OS 了。

自從 10 多年前,使用了 Gentoo 之後,自己的桌機,就一直是安裝 Gentoo Linux,配合工作上的需要,再在 VM 中安裝 Windows 系統。這樣的作法,感覺整個系統穩定多了。尤其,在使用 Windows 7 時,在關機時,動不動就在更新,非常令人火大。

使用 Gentoo,非常麻煩,每個 package 都要自行編譯後,才安裝,要花很多時間。在剛開始接觸時,還是使用賽陽的CPU,大概要花一個星期吧。就算是這顆 2013 年買的 i7-3930K,要到能使用 Xfce 4 的桌面,大概也要花掉 2 天的時間。不過,讓人樂此不疲的原因,是透過它在編譯的過程中,可以學到很多 Linux 和 Open source 的作法。

而且,Gentoo 的 portage 套件管理工具,這幾年越來越完善,很少會因為升級,而造成衝突。另外,透過滾動發行的作法,不用重裝系統,就可以所有的套件都保持在最新的版本。

首先,要找個可開機的系統來進行安裝。我個人喜歡使用 Ubuntu,在進入試用的環境下,可以一邊上網看安裝指引,一邊進行安裝。

安裝前,要先規畫安裝 Gentoo Linux 的硬碟分割。以下是目前自己在用的系統,硬碟的使用情形。
/dev/sda1       146M   27M  112M   20% /boot
/dev/sda3        79G   33G   43G   43% /

在使用  "eselect profile" 選擇 profile 時,在安裝基本環境時,只選擇 "systemd",儘快裝好一個空的系統,確認可以重新開機。能編好 kernel,然後成功開機,這往往是初學者最困難的一步,也可以學到不少東西。
關於 Gentoo 的 LTS 的 kernel,參考此網頁 Active kernel releases

在圖形界面,我個人喜歡用 gdm 登入,所以會選擇  "gnome/systemd",並且在 USE flags 加上 "cjk",讓它支援中文。這時候,大概得等到裝好一個輕量級的 Xfce 桌面,才能比較方便的使用新裝好的 OS。這過程,大概要一天吧,還是先用 Ubuntu,進 chroot 繼續後面的安裝步驟,直到有 xfce 可用。

在開機前,要裝好 grub,編好 kernel,更改管理者密碼。

為了提昇 emerge 套件的速度,並且避免頻繁寫入 SSD,記憶體也夠大,可以使用 tmpfs 來供安裝過程使用。emerge 過程,檔案是放在 /var/tmp/portage 的目錄下,在 chroot 中,手動 mount tmpfs 的指令如下。注意,tmpfs 的大小,一般不宜超過一半的記憶體。
# mount -t tmpfs -o size=4G,uid=portage,gid=portage,mode=755 /var/tmp/portage

裝好的系統,可以在 /etc/fstab 中,加上 tmpfs 的掛載,可以自行參考網路資料。https://wiki.gentoo.org/wiki/Portage_TMPDIR_on_tmpfs



有時,要暫時修改 tmpfs 的大小,可以執行下面的指令。
# mount -o remount,size=4G,noatime /tmp

可以安裝 app-portage/cpuid2cpuflags,來偵測 CPU_FLAGS_X86 flags,然後將其加入 /etc/portage/make.conf 中。

在 /etc/portage/make.conf 中,我會加的設定。
ABI_X86="64 32";同時支援 64位元和32位元的程式庫,因為我會用 32 位元的 WINE。
GRUB_PLATFORMS="efi-64 pc";grub 同時安裝 efi 和 dos。

LINGUAS="zh_TW";中文的環境
L10N="zh-TW zh-CN"

INPUT_DEVICES="evdev keyboard mouse";X window 的設定
VIDEO_CARDS="vesa nouveau nv"
ALSA_CARDS="hda-intel"

# echo "Asia/Taipei" > /etc/timezone
# emerge --config sys-libs/timezone-data

再來,修改 /etc/locale.gen,然後執行 locale-gen,產生 locale。


en_US ISO-8859-1
en_US.UTF-8 UTF-8
 zh_TW.UTF-8 UTF-8

zh_TW BIG5
zh_CN.UTF-8 UTF-8
zh_CN GB2312

固定 IP 設定

建立檔案 /etc/systemd/network/50-wired.network
[Match]
Name=eno1
[Network]
Address=10.61.86.133/20
Gateway=10.61.80.1

[Address]
Label=eno1:1
Address=10.161.86.133/20

然後,設定服務
systemctl enable systemd-networkd.service
systemctl start systemd-networkd.service

Note that systemd-networkd does not update resolv.conf by default. To have systemd manage the DNS settings, replace resolv.conf with a symlink and start systemd-resolved.
ln -snf /run/systemd/resolve/resolv.conf /etc/resolv.conf
systemctl enable systemd-resolved.service
systemctl start systemd-resolved.service 

注意,要 systemd-machine-id-setup,建立 machine ID,journal 才會正常運作,service 才會正常起動,網路也才會起來。

設定時區 (使用 systemd)
# timedatectl set-timezone Asia/Taipei
# timedatectl set-ntp yes
# timedatectl set-local-rtc no


大概就這些吧。

設置 grub2

參考 https://wiki.centos.org/zh-tw/HowTos/Grub2

由 grub-0.97 直接跳到 grub-2.0,有方便的地方,但要一些適應才行。

設定檔為 /etc/default/grub,我習慣的設定如下:
# 預設的開機,儲存在 /boot/grub/grubenv 中的 saved_entry
GRUB_DEFAULT=saved

# 顯示全部的開機選項
GRUB_DISABLE_SUBMENU=y
# 不要建立復原開機選項
GRUB_DISABLE_RECOVERY="true"

# Boot with systemd instead of sysvinit (openrc)
GRUB_CMDLINE_LINUX="init=/usr/lib/systemd/systemd"


使用 BIOS 時,執行 grub-install /dev/sda 安裝 bootloader。使用 EFI 的話,有點小複雜,就先不折騰了。

在 kernel 建好之後,直接下 make install 指令,即可將 kernel 的 image複製到 /boot 下。
執行指令 grub-mkconfig -o /boot/grub/grub.cfg,建立開機選單。

執行 awk -F\' '$1=="menuentry " {print i++ " : " $2}' /boot/grub/grub.cfg,列出開機時顯示的選單列表。
0 : Gentoo GNU/Linux,採用 Linux 4.9.16-gentoo
1 : Gentoo GNU/Linux,採用 Linux 4.9.16-gentoo.old
2 : Gentoo GNU/Linux,採用 Linux 4.4.52-gentoo.good
3 : Gentoo GNU/Linux,採用 Linux 4.4.52-gentoo
4 : Gentoo GNU/Linux,採用 Linux 4.4.52-gentoo.old


執行 grub-set-default 3,設定預設開機選項為 3。
執行 grub-editenv list,顯示儲存的設定如下
saved_entry=3

2017-10-13 補記

重開機後,emerge -av xorg-server xterm twm,就可以進入 X window,有圖形介面了。
在此時,只需幾個小時,就有視窗可用了,真是快。

常用小工具
xfce4-notes-plugin
The notes are stored as text files in $XDG_DATA_HOME/notes/ (~/.local/share/notes by default).
The settings are in $XDG_CONFIG_HOME/xfce4 (~/.config/xfce4/xfce4-notes.*).
xfce4-clipman-plugin, 要安裝 x11-themes/gnome-icon-theme, 才會出現圖示

x11-themes/gnome-icon-theme 的 icon,還被一些應用程式使用,如 smb4k 及 krusader 等,不能隨便移除。

沒有留言: