arch linux 安裝出錯個人全記錄
前記
kali感覺日常使用還是不是特別合適,於是又打算換一個系統了。。想了半天沒想好用啥,想想我也是比較愛折騰的人,最後決定換archlinux,沒想到從一開始安裝就折騰的不行。。果然我還是太嫩了,記錄下出錯的各種地方,方便以後再次安裝,也方便有需要的朋友解決問題。
我這裡省略了很多配置步驟,因為主要目的是安裝,之後的配置都等進系統之後再說,所以可能有一些配置不太完整,主要做一個出錯之後的參考。
準備
在win下進行壓縮卷刪除卷,將原來kali的空間刪除後,發現:windows無法進入了,提示我已經忘了,但是大概就是卡在grub 那兒,跳出grub rescue>命令列。 這裡不需要太在意,在安裝完成之後,grub/syslinux會自動識別windows,到時候就可以進windows了。
通過cfdisk進行分割槽
注意swap分割槽的type是82
通過mkfs.ext4建立檔案系統
這裡我是用一個小本子把我想要掛載的地方和裝置記下來,比如/dev/sda5對應根目錄,/dev/sda6對應/var,事實證明這樣很管用。。。
如果忘記了,可以通過lsblk -f檢視分割槽情況,看看自己想怎麼分割槽。
mount
將對應的磁碟mount到相應的/mnt目錄下。比如根目錄mount /dev/sda5 /mnt
,其餘則在/mnt/xxxx下。
注意swap分割槽需要使用swapon,在此之前需要mkswap。
錯誤:mount的時候找不到資料夾
錯誤原因
mount需要提前建立好資料夾
解決方法
mkdir建立相應資料夾,比如mkdir /mnt/etc
再mount到這個資料夾
錯誤:swapon失敗,read header files error!
錯誤原因
在swapon之前需要使用mkswap命令對相應的位置進行mk,比如mkswap /dev/sda7
,然後再swapon /dev/sda7
解決方法
先mkswap再swapon
pacstrap /mnt base base-devel
這裡是安裝系統的主要步驟了
錯誤:一大坨報錯
錯誤原因
(可能為)沒有連上網路
解決方法
ping www.bing.com
確認自己聯網,如果確實是沒有連上,
pppoe-setup
可以進行設定
錯誤:pppoe-setup後pppoe-start,出現connected,可是ping不通
錯誤原因
可能是dns伺服器的問題
解決方法
查一個dns伺服器,有一步是輸入dms什麼什麼的,輸入那個,比如8.8.8.8(谷歌的dns),備用的隨便輸,我輸的一樣的,這樣connected之後就可以ping通了。
genfstab -U /mnt >> /mnt/etc/fstab
錯誤:/usr genfstab未成功
錯誤原因
中間步驟可能出錯了
解決方法
重新格式化一次。。
arch-chroot /mnt
這裡是change root到/mnt,相當與進入硬盤裡邊的系統了
設定時區語言等略
Initramfs
mkinitcpio -p linux
bootloader
這裡就比較複雜了,有一些問題找了很久都沒有找到解決方法。。
我採用的是grub,一開始用syslinux,然後到有一步實在解決不了了。。。
注意,我不是efi
錯誤:cannot find EFI directory
錯誤原因
在grub-install的時候需要指明target,因為我不是efi,所以如果沒有efi,不指明target就會出現這個問題
解決方法
引數上加上 --target=i386-pc
錯誤:cannot find a grub drive
錯誤原因
不太清楚
解決方法
通過pacman重新安裝一次
錯誤:/boot/grub/i386-pc/normal.mod not found
錯誤原因
應該是grub沒安裝好
解決方法
重新完整安裝grub並配置好
錯誤:/mounted successfully, but /sbin/init doesn’t exist. can’t access tty.
錯誤原因
主要存在當/usr不是直接在/下被掛載的時候,也就是說當/usr是單獨的分割槽的時候,就會存在這個問題。arch和manjaro的/sbin是指向/usr/bin的,如果/usr沒有更早的被掛載,那麼/sbin/init就會找不到。
解決方法
生成一個新的init檔案,使用正確的hook。
0. 進入livecd,把該mount到/mnt下的都mount好
1. 編輯/etc/mkinitcpio.conf,找到HOOKS=“XXXX”這一項,在雙引號內最後新增shutdown usr fsck, 也就是變成 HOOKS=”XXXX shutdown usr fsck”(千萬不能刪除前面的東西,也就是不能刪除這裡的XXXX)注意這裡的/etc是livecd的/etc
2. 在/etc/fstab裡邊把/usr標成0,這裡的/etc是mount之後的/mnt/etc,也就是硬碟的/etc,找到/etc/fstab,也就是之前genfstab生成的,找到/usr這一行,把最後一個數字改成0。比如最後兩個數字是0 2,就改成0 0
3. arch-chroot之後,執行mkinitcpio -p linux
4. 如果需要update-grub的就update-grub,否則退出重啟。
錯誤:grub-install 裝不上
錯誤原因
注意輸入/dev/sda的時候,是/dev/sda 而不是/dev/sda4等帶數字的。
解決方法
修改命令即可
安裝桌面等等
錯誤:安裝yaourt,missing required signature
錯誤原因
配置裡邊要求了簽名
解決方法
找到paman.conf,去掉Siglevel=Required…….那一行。
錯誤:安裝NVIDIA驅動執行nvidia-xconfig之後無法進入X windows
錯誤原因
我也不是很清楚什麼原因,比較神奇
解決方法
在/etc/X11下有個xorg.conf,在官網下的NVIDIA驅動會改變這個檔案,直接刪除之,或者備份之後刪除之就可以進入X window了。(因為預設好像這個檔案是空的,所以刪除問題應該也不大,大不了再建立一個新的空檔案)