檢查啟動模式是否支持UEFI,這將決定在安裝 Bootloader 階段的步驟:
ls /sys/firmware/efi/efivars
有線用戶在 DHCP 可以獲取 IP 的情況下,一般可以連接網絡,無線用戶可以使用下面命令選擇網絡連接:
wifi-menu -o wlp3s0 # 使用WiFi
測試網絡是否連通:
e ping -c 3 www.archlinux.org
使能 NTP 服務,更新系統時間,確保時間的准確性:
timedatectl set-ntp true timedatectl status
查看磁盤信息,以選定使用的磁盤:
lsblk
創建/更改磁盤信息,這裡對磁盤 /dev/sdb 重新分區,使用 gpt 格式:
parted /dev/sdb (parted) mklable gpt (parted) mkpart ESP fat32 1MiB 513MiB (parted) set 1 boot on (parted) mkpart primary ext4 513MiB 100%
格式化分區:
mkfs.fat -F32 /dev/sdb mkfs.ext4 /dev/sdx
掛載分區:
mount /dev/sdb2 /mnt mkdir /mnt/boot mount /dev/sdb1 /mnt/boot
選擇安裝使用的鏡像服務器,一般使用 China 幾個,解注釋/移動到文件首:
vim /etc/pacman.d/mirrorlist
同步鏡像服務器並安裝:
pacman -Syy #一般不需要,但可以測試選擇鏡像服務器速度用 pacstrap -i /mnt base base-devel
以UUID的方式生成fstab:
genfstab -U /mnt >> /mnt/etc/fstab
檢查並修改fstab
vim /mnt/etc/fstab
因為使用SSD並支持TRIM,修改參數減少硬盤寫入,並添加discard開啟TRIM:
UUID=xx / ext4 defaults,noatime,discard 0 1 # relatime -> noatime & add discard
chroot系統,以完成安裝的最後工作:
arch-chroot /mnt /bin/bash
這裡預先安裝一些常用的工具,更多工具可以等到系統安裝完畢再安裝:
pacman -S vim intel-ucode iw wpa_supplicant dialog zsh # intel-ucode是intel的微碼工具
編輯下面文件,解注釋使用到的類型:
vim /etc/locale.gen
保存後使之生效:
locale-gen
創建本地化選項:
echo LANG=en_US.UTF-8 > /etc/locale.conf
設置時區,並同步到系統時鐘:
tzselect ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime hwclock --systohc --utc
創建初始的ramdisk:
mkinitcpio -p linux
因為使用 UEFI + GPT,直接使用 systemd 工具生成啟動信息:
bootctl install
創建啟動配置文件:
vim /boot/loader/entires/arch.conf
添加下列信息:
title Arch Linux linux /vmlinuz-linux initrd /intel-ucode.img #安裝intel-ucode後添加 initrd /initramfs-linux.img options root=/dev/sdb2 rw #/文件系統的分區
修改文件默認啟動信息:
vim /boot/loader/loader.conf #add default arch & add timeout 0
設置此系統的名稱:
echo leesheen-X240 > /etc/hostname
並在 /etc/hosts 添加同樣的主機名:
vim /etc/hosts # 添加 leesheen-X240 到文件中兩行內容的末尾
設置root用戶密碼:
passwd
退出chroot環境:
exit
卸載磁盤:
umount /mnt -R
重啟:
reboot
系統重啟後以root用戶登錄系統。
//TODO
LAN
WLAN
通常我們應該使用普通(非root)用戶使用Linux系統,需要root權限時使用sudo。
創建一個leesheen的用戶:
useradd -m -G wheel -s /bin/zsh leesheen passwd leesheen
把leesheen用戶添加到sudo用戶組中:
vim /etc/sudoers #add leesheen ALL=(ALL) ALL
Arch Linux 的用戶軟件源有龐大的資源,這也是Archer熱愛它的一個原因,其中yaourt是一個很好的AUR助手工具,能幫助用戶自動化中間的過程。
編輯pacman的配置文件:
vim /etc/pacman.conf
添加archlinuxcn的源:
[archlinuxcn] SigLevel = Optional TrustAll Server = http://mirrors.163.com/archlinux-cn/$arch
Arch Wiki上提供的源有點慢,這裡有國內的源的地址,可以測試速度後自行選擇:
Server = http://repo.archlinuxcn.org/$arch Server = http://mirrors.ustc.edu.cn/archlinuxcn/$arch Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch Server = http://mirrors.cqu.edu.cn/archlinux-cn/$arch Server = http://mirrors.163.com/archlinux-cn/$arch Server = http://mirrors.hustunique.com/archlinuxcn/$arch Server = http://mirrors.4.tuna.tsinghua.edu.cn/archlinuxcn/$arch Server = http://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch # both IPv4 & IPv6 Server = http://mirrors.6.tuna.tsinghua.edu.cn/archlinuxcn/$arch # only IPv6
修改完後更新源並且安裝yaourt:
pacman -Syu yaourt
用戶主機為ThinkPad X240,Intel Haswell HD4400單集顯:
安裝ThinkPad觸摸板驅動:
pacman -S xf86-input-libinput xf86-input-synaptics
安裝顯示驅動:
pacman -S mesa-libgl xf86-video-intel libva-intel-driver libvdpau-va-gl mesa-demos
內核已經集成ALSA驅動,這裡安裝工具:
pacman -S alsa-utils
ThinkPad X240默認識別兩個聲卡,把HDMI通道的聲卡設置成為默認,這裡如果想使用筆記
本上的聲卡,把PCH設置成默認,添加啟動加載文件:
//TODO look pcm
vim /etc/modprobe.d/alsa-base.conf
添加如下代碼設置:
# Set pcm is default sound card options snd_pcm index=0 options snd_hda_intel index=1
重新啟動,PCH聲卡就變成默認聲卡了。
以上操作基本上完成了 Arch Linux 核心部分的安裝,下面針對不同的用戶和不同的需要進行操作,也會以普通用戶身份登錄了。
重啟以普通用戶身份登錄
reboot
Shadowsocks是一個輕量級socks5代理,以Python寫成。
安裝SS:
sudo pacman -S shadowsocks libsodium python2-numpy python2-salsa20 python2-m2crypto
拷貝默認配置文件:
sudo cp /etc/shadowsocks/example.json /etc/shadowsocks/config.json # 按自己shadowsocks配置修改
後台啟動服務並且開機自啟:
sudo systemctl enable shadowsocks@config sudo systemctl start shadowsocks@config
很多時候應用不支持代理或者某些代理方式,Proxychains是一個將socks5等代理類全局化的工具。安裝:
sudo pacman -S proxychains-ng
修改配置文件/etc/proxychains.conf
# 修改最後一行 socks5 127.0.0.1 1080
然後就可以在Terminal中使用它讓xxx應用走socks5代理:
proxychains xxx
git不僅僅是一個版本管理工具,很多時候也是我們獲取內容的工具。安裝:
sudo pacman -S git
配置git:
git config --global user.name "Lee Sheen" git config --global user.email "[email protected]"
很多時候訪問Github很難,而我大部分git都是在Github上完成的,所以讓所有的git都使用socks5代理來保證速度。當然也可以不添加,在訪問困難的時候配合Proxychains使用,添加代理信息:
git config --global https.proxy 'socks5://127.0.0.1:1080' git config --global http.proxy 'socks5://127.0.0.1:1080'
為了同步多太電腦配置方便,我把一些配置文件同步到Github,先把配置文件clone下來:
mkdir ~/Tools cd ~/Tools git clone https://www.github.com/leesheen/config-linux.git
在~/Tools/config-linux/下就是後面需要的配置文件了。
Zsh是一個功能強大的Shell,我們用其代替系統默認的bash。在前我們已經安裝:
# pacman -S zsh
Zsh的高可定制性使我們獲得一個優秀配置變得比較復雜,還好有個開源項目叫Oh-my-zsh,使用官網的腳本直接配置安裝:
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" # 或者使用wget sh -c "$(wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)" # 沒有速度可配合Proxychains使用,或者執行備份腳本的內容: ./Tools/config-linux/script/ohmyzsh_install.sh
添加alias
vim .zshrc #添加需要的alias到最後 alias pcs='proxychains -q'
注意:如果想在root用戶下也使用zsh的此配置,在root用戶下執行上面的命令
Vim是一個強大的編輯器,對我來說最強大之處在於它的速度,任何大小的文件處理起來沒有卡頓。無論是碼代碼還是Markdown,它的順滑讓我的工作更加專注,此前在安裝初期我們已經安裝:
# pacman -S vimYCM
YouCompleteMe擁有強大的補全和語義檢查功能,安裝:
yaourt vim-youcompleteme-git
YCM檢查語義需要clang的支持,安裝:
pacman -S clang
鏈接全局配置文件到配置目錄j
CtagsCtags是Linux下的跟蹤文件的利器,安裝:
pacman -S ctagsVundle
它的強大之處也在於它的高可定制行,豐富的插件讓我們的工作更加簡單,但和其他插件豐富的工具(Chrome/Atom)不同的是,它沒有一個官方的渠道管理這些插件,所以使用一個插件來管理這些插件,它叫Vundle,使用git安裝:
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
把配置好的vimrc鏈接到家目錄的vimrc:
ln ~/Tools/config-linux/config/vimrc ~/.vimrc
鍵入命令安裝插件:
vim +PluginInstall +qall
注意:如果使root用戶或者sudo下使用vim也插件化,上述步驟在root用戶下也操作一遍其中PowerLine插件需要額外的字體,安裝:
yaourt ttf-cosolas-powerline
Xbindkeys是一個可以允許用戶自定義鍵值的程序,我們可以利用它來自定義一些按鍵,比
如靜音和增減音量的快捷鍵不能使用等,安裝:
sudo pacman -S xbindkeys
這裡使用配置文件中的配置:
ln ~/Tools/config-linux/config/xbindkeysrc ~/.xbindkeysrc
這個文件使用了以下工具
Sound: alsa-utils 上述已經安裝; BackLight: xinit-backlight 上述已經安裝; MultiScreen: lxrandr 需要安裝; Wi-Fi: 默認按鍵可以使用up/down Wi-Fi; Setting: TODO Search: TODO Finder: xfce4-appfinder 下述xfce4安裝; FileManager: nautilus 下述xfce4安裝;安裝上述需要安裝的工具:
sudo pacman -S lxrandr
添加xbindkeys啟動到xinitrc,下面配置文件中已經包含。
Xorg 是 X11 窗口系統的一個開源實現,當使用桌面環境或者窗口管理器時需要X配合,
安裝Xorg和其工具包:
sudo pacman -S xorg-server xorg-server-utils xorg-apps xorg-xinit ln ~/Tools/config-linux/config/xinitrc ~/.xinitrc # 其中添加了fcitx和啟動i3 cp /etc/X11/xinitrc/xserverrc ~/.xserverrc
xfce4是一個輕量級模塊化的桌面環境。一般在需要桌面環境的時候作為備用。
安裝:安裝xfce4和常用軟件包:
sudo pacman -S xfce4 xfce4-goodies yaourt solarized-dark-themes
安裝NetworkManager
pacman -S networkmanager network-manager-applet xfce4-notifyd dnsmasq ppp rp-pppoe modemmanager sudo systemctl enable NetworkManager sudo systemctl start NetworkManager
安裝Bluetooth:
pacman -S bluez bluez-utils blueman sudo systemctl enable bluetooth sudo systemctl start bluetooth
如果需要開機啟動藍牙,添加下面文件:
vim /etc/udev/rules.d/10-local.rules # Set bluetooth power up ACTION=="add", KERNEL=="hci0", RUN+="/usr/bin/hciconfig hci0 up"
配對藍牙鼠標:
如果使用雙系統,而且使用藍牙鼠標,那麼讓兩個系統使用不用每次配對:
sudo pacman -S chntpw mount /dev/sda4 /mnt/tmp/ # 掛載Windows安裝目錄 cd /mnt/tmp/Windows/System32/config/ chntpw -e SYSTEM
在chntpw下執行:
cd ControlSet001\Services\BTHPORT\Parameters\Keys ls # 查看藍牙的名稱,選擇進入 cd 5c514f631027
復制上圖的16進制代碼並刪除空格
90C13638D41763DF52243F17D566146F su # 切換到root模式 cd /var/lib/bluetooth/ ls # 查看藍牙名稱,應與上述一致 cd 5c:51:4f:63:10:27 ls cd 00:1F:20:A9:DB:71 vim info
把上述復制的16進制代碼替換Key的值,保存重啟即生效。
安裝VPN:
yaourt strongswan yaourt networkmanager-strongswan
窗口管理器的效率在習慣養成後遠遠大於桌面環境,awesome/i3-wm等都是代表者,而i3-wm更是簡單高效。
sudo pacman -S i3-wm i3lock i3status安裝工具:
//TODO
yaourt dmenu2 yaourt j4-dmenu-desktop-git配置文件
創建i3的配置文件:
mkdir -p ~/.config/i3 ~/.config/i3status ln ~/Tools/config-linux/config/i3/config ~/.config/i3/config ln ~/Tools/config-linux/config/i3/i3status ~/.config/i3status/config
背景
pacman -S feh imagemagick feh --bg-scale /path/to/image使用X
安裝配置完成就可以進入X了,通常進入i3:
startx
個人喜歡Chrome浏覽器,在Arch下Pacman庫中為開源的Chromium,不包含Flash組件,但現在國內的很多網站下缺少不了Flash,我選擇同時安裝,在移動狀態下使用電池時選擇Chromium。安裝Chrome/Chromium:
sudo pacman -S chromium yaourt google-chrome-stable
安裝常用的英文字體和中文字體,個人很喜歡adebe的source系列開源字體,安裝:
sudo pacman -S ttf-dejavu wqy-microhei sudo pacman -S adobe-source-code-pro-fonts \ adobe-source-sans-pro-fonts \ adobe-source-serif-pro-fonts \ adobe-source-han-sans-cn-fonts yaourt ttf-monaco
//TODO 配置Terminal默認中文字體
個人喜歡使用fcitx框架,在此框架下提供的中文輸入法比較好用,這裡只選擇安裝sogou輸入法:
sudo pacman -S fcitx fcitx-im fcitx-qt5 fcitx-configtool yaourt fcitx-sogoupinyin
在X下使用fcitx-configtool添加Sogou Pinyin,重新加載fcitx後,使用shift鍵就可以切換中/英文了。
以為之前使用KDE Plasma,很喜歡Konsole,但其實xfce4-terminal一樣能完成Konsole的工作,而且更輕量。
在xfce安裝過程中已經安裝過xfce4-terminal。
添加配置文件:
# 創建配置文件目錄 mkdir -p ~/.config/xfce4/terminal # 鏈接配置文件 ln ~/Tools/config-linux/terminalrc ~/.config/xfce4/terminal/terminalrc
安裝Konsole,選擇VLC為後端:
# sudo pacman -S konsole
MPlayer是一個開源的播放器,快速好用,安裝:
sudo pacman -S mplayer # 自帶解碼包依賴
TODO: 配置文件字幕
通常使用xfce4下的thunar,一般情況下也很少用到,安裝xfce4已經包含thunar。
Dropbox安裝常用的壓縮/解壓縮的工具:
sudo pacman -S unzip p7zip lzop cpio unrar
之前使用Windows,所以硬盤中包含NTFS分區和額外的ext4分區,首先安裝必要的磁盤工具支持fat/ntfs/exfat/hfs等分區格式:
sudo pacman -S parted exfat-utils ntfs-3g dosfstools hfsprogs hdparm
上述的配置文件裡面有默認的fstab,把硬盤1中Windows使用的NTFS分區(Data)和Linux EXT4(Data)掛載到/mnt下相應設備名稱的目錄下:
sudo mkdir /mnt/sda6 /mnt/sda8 /mnt/sda9 /mnt/tmp sudo chmod g+w * sudo ln ~/Tools/config-linux/config/fstab /etc/fstab # 危險,應該添加額外的配置 sudo hdparm -I /dev/sdb | grep TRIM systemctl enable fstrim.service fstrim.timer systemctl start fstrim.service fstrim.timer
有很多比較好的MD工具,像Atom、Remarkable等,但Remarkable預覽總有問題,Atom用起來有略微卡頓,所以還是使用vim編輯,Chrome插件實時預覽的方式。
Atom是Github官方的編輯器,原生支持Markdown,安裝Atom:
yaourt atom-editor
Atom和其他出色的編輯工具一樣,擁有眾多插件,這裡安裝Markdown相關的MD轉PDF和vim模式的插件:
apm vim-mode ex-mode markdown-pdf # Atom的插件在Github上,可以使用proxychains協助安裝
在Chrome的WebStore中搜索Markdown Preview Plus並安裝
打開chrome://extensions/,在其設置頁中勾選 “Allow access to file URLs”
在Chrome中打開本地Markdown文件,http/https也是可以支持的,你會看到已經轉換成html的內容
在Chrome地址欄輸入文件路徑打開Markdown文件,用vim編輯Markdown,保存後頁面就會自動刷新,實現預覽。
在vimrc中加入以下內容:<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjxwcmUgY2xhc3M9"brush:sql;">
autocmd BufRead,BufNewFile *.{md,mdown,mkd,mkdn,markdown,mdwn} map
需要預覽時輸入\p打開浏覽器預覽。
imagemagick
wget
yaourt openssh-hpn-git
yaourt wps-office ttf-wps-fonts
pacman -S mlocate updatedb
pacman -S qemu libvirt pm-util virt-manager pacman -S ebtables dnsmasq bridge-utils openbsd-netcat
修改配置文件:
vim /etc/libvirt/libvirtd.conf # 解注釋下面的配置 unix_sock_group = "libvirt" unix_sock_ro_perms = "0777" # set to 0770 to deny non-group libvirt users unix_sock_rw_perms = "0770" auth_unix_ro = "none" auth_unix_rw = "none" systemctl enable libvirtd.service virtlogd.service systemctl start libvirtd.service virtlogd.service
pacman -S nfs-utils
配置文件
vim /etc/exports 添加 /srv/nfs4/ 192.168.1.0/24(rw,fsid=root,no_subtree_check) /srv/nfs4/music 192.168.1.0/24(rw,no_subtree_check,nohide) # note the nohide option which is applied to mounted directories on the file system. vim /etc/conf.d/nfs-server.conf 添加 NFSD_OPTS="-N 2 -N 3"
啟動服務
systemctl enable nfs-server systemctl start nfs-server
pacman -S samba cp /etc/samba/smb.conf.default /etc/samba/smb.conf
pacman -S virtualbox virtualbox-guest-iso qt4 net-tools yaourt virtualbox-ext-oracle gpasswd -a leesheen vboxusers
pacman -S hddtemp