Win10(UEFI)+Archlinux+Tensorflow+Caffe雙系統安裝血淚總結!
有著一股子騷勁和適合寫程式碼這兩點優勢混合的Archlinux讓我有著足夠動力去嘗試這個新玩意,在Win10上裝Arch的雙系統和單裝Arch還是有一些不一樣的,在裝的過程中,踩了不少坑,浪費了很多時間,在此總結一下,希望給各位入坑的時候走得順利一點。
Win10(UEFI)
怎麼看自己的系統是否是UEFI版呢?如果在磁碟管理上看見有個100M左右的分割槽,那麼那個分割槽一般就是EFI分割槽了。
為什麼這要是UEFI版呢?因為我在裝雙系統的時候,arch的記憶體是從C盤割出來的,這塊割出來的分割槽我這裡是sda4了,而裝arch至少需要兩個分割槽,一個是/mnt用於裝arch系統和七七八八的東西,一個是/mnt/boot/EFI,用於儲存系統啟動項。在arch中,EFI分割槽的格式通常是fat32,這與/mnt的ext4不同,所以這兩個一般是不同分割槽,而在我的電腦上只割了一塊記憶體給arch,如果再割一小塊也很麻煩,當然這不是主要原因,主要原因是在系統啟動上,相比於傳統Bios+Arch的方法,Win10(UEFI)系統本身就有一個EFI分割槽,用於存放Win10的啟動項,在這,我們直接將win10的EFI分割槽(我這裡是sda1)掛載在/mnt/boot/上,將Win10的這個EFI分割槽也作為Arch的EFI分割槽,最後裝了Arch以後,EFI資料夾裡面就會既有Arch也有Win10的啟動項,這時就會在開機的時候提供選擇,如果是傳統Bios+Arch,要讓電腦選擇從哪個資料夾下載入啟動項會麻煩一點。關於瞭解EFI分割槽可以看:
至於怎麼裝win10就不解釋了,另請高就吧。
正式開始
1.製作一塊Archlinux的系統盤,注意要用RAW寫入方式。
2.給電腦分出一塊區域用於裝arch。
3.插入U盤,從U盤啟動,啟動成功後選第一項。
4.聯網:
wifi-menu
5.加入映象源:
nano /etc/pacman.d/mirrorlist
將檔案中的第一項改為清華或者中科大的映象,這樣後面下系統等會快很多。例如:將映象站:mirrors.xxxxxx.com/……的xxxxxx改為tuna.tsinghua.edu.cn
6.分割槽
fdisk /dev/sda*
這裡的sda*為你劃分出來給arch的那個分割槽(我這裡是sda4)。1.執行命令後會讓你給出指示命令,我們先給一個g,表示建立分割槽表,2.然後再給一個n,表示要正式建立分割槽了,回車,3.然後會讓你給出分割槽起始位置,回車使用預設就行、4.接著會讓你給出結束分割槽位置,我們繼續回車、5.然後又讓我們給出指示命令,這次我們給一個w表示儲存退出。
7.格式化分割槽
mkfs.ext4 /dev/sda*
這裡的sda*為剛剛做的那個分割槽。
8.掛載分割槽(重點)
這裡我們要掛載兩個分割槽到兩個地方:1./mnt(用剛剛建立的那個分割槽,我這裡是sda4) 2./mnt/boot(用win10的EFI分割槽,我這裡是sda1)
mount /dev/sda4 /mnt
mkdir /mnt/boot
mount /dev/sda1 /mnt/boot
注意根據自己的情況改上面的sda4和sda1。
9.安裝基本軟體包
pacstrap -i /mnt base
10.生成fstab
genfstab -U -p /mnt >> /mnt/etc/fstab
如果想避免efi分割槽在開機時總是被檢查,可以把/boot那一行下最後的數字改成0。 例如我的efi分割槽是/dev/sda1,修改之後就是:
#/dev/sda1
9 UUID=E0A6-B270 /boot vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro 0 0
11.轉換到新系統
arch-chroot /mnt /bin/bash
12.配置新系統
-
設定Locale
使用nano /etc/locale.gen,註釋掉en_US.UTF-8 UTF-8、zh_CN.UTF-8 UTF-8 -
生成locale.gen和locale.conf檔案
locale-gen echo LANG=en_US.UTF-8 > /etc/locale.conf
-
選時區、設定硬體時鐘
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime hwclock --systohc --utc
-
設定root密碼
passwd
-
安裝bootloader用於啟動(重點)
按照上面的步驟,efi分割槽應該被掛載到了/boot目錄下。這時,我們需要安裝bootloader:bootctl install cp /usr/share/systemd/bootctl/arch.conf /boot/loader/entries/
-
修改arch.conf檔案(重點)
blkid -s PARTUUID -o value /dev/sda4 #注意這個sda4是arch的那個分割槽,而不是EFI那個分割槽! #這時會出現分割槽的UUID,記下來,我們要用這個UUID修改conf檔案 nano /boot/loader/entries/arch.conf #使用剛剛獲得的UUID加進去,再在後面加個rw,格式大概如下: /boot/loader/entries/arch.conf title Arch Linux linux /vmlinuz-linux initrd /initramfs-linux.img options root=PARTUUID=14420948-2cea-4de7-b042-40f67c618660 rw
-
修改loader.conf檔案,
nano /boot/loader/loader.conf
改為:
timeout 3 default arch
-
設定主機名
echo myhostname > /etc/hostname
myhostname改為你自己喜歡的主機名就行。同時,修改/etc/hosts為:(myhostname就是你自己起的名字)
# <hostname.domain.org>127.0.0.1 localhost.localdomain localhost myhostname ::1 localhost.localdomain localhost myhostname
-
設定網路
systemctl enable dhcpcd pacman -S iw wpa_supplicant dialog
這時新系統的配置就完成了,再去EFI分割槽看就會多了一個systemd出來,這裡面存放的就是arch的啟動項,重啟後就會出現系統啟動選擇(有archlinux和window manage),並且延時是3秒。建議在這一步時先不重啟,因為很可能會在重啟後遇到wifi聯網的問題,我們直接開始裝桌面環境,再重啟。
桌面環境
桌面環境這裡是出現問題最多的,總的來說就是裝的包不齊,或者裝的包不相容。這裡提供兩個桌面環境的安裝,包括gnome+gdm和kde+sddm,兩者只裝其一就行!!!
裝顯示卡驅動(重點)
我的是N卡,如下:
pacman -S nvidia nvidia-utils
千萬不要漏裝!
如果是A卡或者其他型別,參考:https://wiki.archlinux.org/index.php/Xorg_(簡體中文) 中的驅動安裝,按照那一節的表格安裝
裝xorg(重點)
pacman -S xorg xorg-utils xorg-server xorg-server-utils
千萬不要漏裝!
啟動網路服務
systemctl enable NetworkManager.service
裝桌面環境
gnome+gdm
pacman -S gnome
pacman -S gdm
systemctl enable gdm.service
systemctl start gdm.service
KDE+SDDM
pacman -S plasma kde-applications
pacman -S sddm
sddm --example-config >/etc/sddm.conf
systemctl enable sddm.service
其中使用file /etc/systemd/system/display-manager.service檢視是否成功連結,成功連結的執行結果如下:
/etc/systemd/system/display-manager.service: symbolic link to /usr/lib/systemd/system/sddm.service
然後:
systemctl start sddm.service
然後就可以進去了。
桌面不顯示中文
1.安裝中文字型
2.修改語言
echo LANG=zh_CN.UTF-8 > /etc/locale.conf
裝軟體
給pacman加入archlinuxcn源:
sudo nano /etc/pacman.conf
新增下面三行文字到檔案末尾:
[archlinuxcn]
SigLevel = Optional TrustedOnly
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch
然後更新一下軟體庫:
sudo pacman -Sy
裝Chrome
pacman -S chrome
如果安裝成功後,搜尋發現沒有chrome,是因為用的是root使用者進入的系統,當你使用一個非root使用者進入系統事就可以搜尋到chrome並運行了,或者使用命令列啟動,這時可能會有錯誤,按照系統建議修改命令列就可以啟動了
裝網易雲音樂
pacman -S netease-cloud-music
這會和上面出現一樣的情況。
裝輸入法
我喜歡用googlepinyin,當然,搜狗拼音是一樣的操作。
pacman -S fcitx fcitx-configtool fcitx-im
不要漏哦!
pacman -S fcitx-googlepinyin
配置fcitx
用文字編輯器開啟~/.xprofile,在其末尾新增以下幾行:
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"
如果裝的是KDE,還需要在/etc/environmenet後方也加入:
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"
重啟桌面環境,就可以使用拼音了。
裝Shadowsock-qt5+genpac
1.安裝Shadowsocks-Qt5
pacman -S shadowsocks-qt5
2.新增自己的SS, 然後安裝genpac
pip install genpac
3.生成pac檔案:
進入到一個你想存放pac檔案的目錄,然後執行:
sudo genpac --proxy="SOCKS5 127.0.0.1:1080" --gfwlist-proxy="SOCKS5 127.0.0.1:1080" -o autoproxy.pac --gfwlist-url="https://raw.githubusercontent.com/gfwlist/gfwlist/master/gfwlist.txt"
注意其中的127.0.0.1:1080應與之前在Shadowsocks-Qt5新增SS裡面的對應。
4.全域性代理:
系統設定–>網路–>代理
使用代理自動配置URL–>選擇剛剛生成pac檔案
5.chrome上裝SwitchyOmega
- 下載SwitchyOmega
- 在chrome位址列上輸入:chrome://extensions/
- 開啟右上角的開發者模式
- 拖動SwitchyOmega到網頁上安裝
- 選擇SwitchyOmega中的系統代理即可
裝Anaconda
參見:https://zhuanlan.zhihu.com/p/32925500
裝Tensorflow+caffe共存 gpu版
pacman -S cuda cudnn
conda create -n caffe-tf python=3.6.1
source activate caffe-tf
conda install caffe-gpu
conda install tensorflow-gpu
遇到的問題
1.systemctl start sddm後黑屏
可能的問題導致:顯示卡驅動沒裝齊、xorg包沒裝齊、檢查sddm的軟連線,用systemctl status sddm檢視
2.重啟後停在Reached target Fraphical Interface
問題:沒有安裝xorg-server
3.出現Signature from “User [email protected]” is unknown trust, installation failed
解決方案:
pacman -S archlinux-keyring
pacman -S archlinuxcn-keyring
參考
https://cuijiahua.com/blog/2017/12/dl_1.html
https://wiki.archlinux.org/index.php/Display_manager_(簡體中文)
https://blog.csdn.net/java_xiaoer/article/details/51457259