1. 程式人生 > >arch linux 安裝出錯個人全記錄

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了。(因為預設好像這個檔案是空的,所以刪除問題應該也不大,大不了再建立一個新的空檔案)