# Arch Linux with KDE+Win10雙系統 & rEFInd安裝心得 ###### tags: `linux` `windows` `dual boot` :::spoiler 軟/硬體資訊 Laptop: ASUS Vivobook S510UNO CPU: Intel(R) Core(TM) i5-8250U CPU @1.60GHz 1.8GHz Memory: 4GB Storage: Intel(R) Optane(TM) Memory 16GB + 1TB HDD GPU: Intel UHD Graphic 620 + NVIDIA GeForce MX150 BIOS: UEFI OS: Windows 10 x64 Professional 1903 + Arch Linux x86_64 :::warning 文中的指令雖為安裝當下所輸入的,但仍**請先看過註解和上下程序**,請勿一味輸入而不了解其意義。 ::: ## Win10 安裝 ### 筆電安裝win10無法選擇版本 根據網路資料,問題出在筆電主板上的序號,安裝程式執行時便會依照主板序號直接選擇安裝win10家用版-->[解法](https://blog.downager.com/2017/07/30/Windows-%E8%A7%A3%E6%B1%BA-Win10-%E5%AE%89%E8%A3%9D%E6%99%82%E7%84%A1%E6%B3%95%E9%81%B8%E6%93%87%E7%89%88%E6%9C%AC%E7%9A%84%E5%95%8F%E9%A1%8C/) ### 關閉windows更新 在未連上網路情形下進入 1. 群組原則編輯器(gpedit.msc)-->Windows Update進行相關設定 2. 服務(services.msc)停用 * Windows Update * Windows Modules Installer * Background Intelligent Transfer Services ### 睡眠選項消失&無法調亮度 原因不明,但在安裝內顯驅動後便獲得解決(**鍵盤熱鍵無法調整亮度的問題一併解決**)。 ### 不小心把桌面路徑設定錯誤 進入登陸編輯程式(regedit)--> ``HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders``,直接修改Desktop路徑,重開機。 ### 開機後自動開啟關機前應用程式 進入設定--> 帳戶--> 登入選項--> 將``使用我的登入資訊...重新開啟我的應用程式``選項關閉 ### Optane Memory抓不到 進入BIOS--> Intel Rapid Storage Technology--> Reset to non-Optane,重開機後重裝Optane驅動--> 重設連結。 ### **關於Optane Memory&Linux磁區格式化**(<font color="red">重要!</font>) 初次安裝Linux時,發現在磁區初始化時一直出現``dev/sda? is apparently in use by the system; will not make a filesystem here!``或``mkswap cannot open /dev/sdb? device or resource busy``錯誤訊息,試過不少方法都沒用,結果重開機重做一次就成功了,但也發現Win10開機速度變得奇慢,折騰好一陣找原因,原來是Optane Memory和HDD失去連結,這時恍然大悟,因為預留給Linux的磁區和win10同屬一塊HDD,所以**Linux磁區第一次初始化時還是持續被Optane Memory調用,所以會跳錯誤訊息**。 因應這個狀況,我決定先完成Linux安裝,再來重新連結Optane Memory和HDD,結果又出現問題:cry:,在連結時Optane Memory Installer跳出``0xA005004E``錯誤碼,找到[intel官網的說明](https://www.intel.com.tw/content/www/tw/zh/support/articles/000056917/memory-and-storage/intel-optane-memory.html) :::success  ::: 不過因為末端正是劃給Linux當swap space,所以我先到Linux刪除磁區後再回到Win10**壓縮出大於5M的空間重新連結Optane Memory**,結果就沒問題了,記得再回頭設定swap space,正式結束和Optane Memory的恩怨;不過也因此HDD末端多了一塊無用的小容量磁區,下次分割時必須多多注意才行。啊對了,**Optane Memory不支援Win以外的作業系統**:joy:。 ## Arch Linux 安裝 ### 事前在win10準備 #### 劃出Linux磁碟空間 在win+x``磁碟管理``中在要分割的區域中選擇``壓縮磁碟區``,選擇要分割出的磁區大小,``確定``後便出現``未配置空間``,分割完成(**使用Optane Memory會有其他配置需求和狀況**,詳見[此](#關於Optane-MemoryampLinux磁區格式化重要))。 #### Rufus 製作開機USB 因為BIOS為UEFI,因此資源分割配置選擇GPT,其他使用預設 :::info What is **[UEFI](https://techfeed.today/2016/09/30/%E5%8F%96%E4%BB%A3%E5%82%B3%E7%B5%B1bios%E7%9A%84efi%E5%92%8Cuefi%E7%A9%B6%E7%AB%9F%E6%98%AF%E4%BB%80%E9%BA%BC%EF%BC%9F/)**? ::: ### 分割磁區 進入linux安裝前,先在win10壓縮出一塊專門給linux的空間(**專門給linux filesystem and swap,efi則和win10共用**),我壓縮的空間為150G左右,分配如下 ``` Device | Type | Directory | Size /dev/sda2 | for efi system (Win10) | /mnt/boot | 100 MB /dev/sda6 | for linux filesystem | /mnt | 149 GB /dev/sda7 | for linux swap | | 1 GB ``` 特別注意,此處``/sda?``只是一個代稱,真實編號取決於安裝當下的情形,每一次安裝都會不一樣,可以先用``lsblk``或``cfdisk``查看目前的磁碟配置;可以用``cfdisk``或``gdisk``分割磁區,這邊都列出以供參考。 :::spoiler cfdisk 較推薦,有完整介面,使用起來比較順手 首先輸入 ``` cfdisk /dev/sda #如同前述,sda只是代稱,不一定是你要配的位置 ``` 進入介面後,應該會看到最下面的<font color="#00DB00">**free space**</font>,用方向鍵``↑↓``移動至要配置的磁區,再用``←→``執行動作,選擇``New``,輸入要配置的空間大小,``Enter``後便會出現新的磁區,編號會連著前面的磁區,而``Type``會預設為``linux filesystem``,可以``←→``至``Type``修改,結束前要記得``Write``寫入,才能``Quit``;若要重新配大小可以``Resize``,出錯要重劃可以``Delete``。 ::: :::spoiler gdisk 首先輸入 ``` gdisk /dev/sda #如同前述,sda只是代稱,不一定是你要配的位置 ``` 進入gdisk後,可以用以下指令執行動作 ``` Command (? for help):? #查詢指令 Command (? for help):p #查詢狀態 ``` 新增分割區的細節(範例) ``` Command (? for help):n #新增分割區 Partition number (6-128, default 6):6 #設定磁區編號 First sector (34-16777182, default = 2048) or {+-}size{KMGTP}: #磁區前端(若要連著前項磁區直接Enter就好) Last sector (2048-16777182, default = 16777182) or {+-}size{KMGTP}: +2G #磁區末端,可以指定位置or填入變量 Current type is 8300 (Linux filesystem) #預設Type為filesystem Hex code or GUID (L to show codes, Enter = 8300): #設定Type,可按L查看hec code Changed type of partition to 'Linux filesystem' #新增完成 ``` 新增出所要的磁區後 ``` Command (? for help):p #先查看新增磁區是否正常 Command (? for help):w #寫入 Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING PARTITIONS!! Do you want to proceed? (Y/N): Y OK; writing new GUID partition table (GPT) to vdc. The operation has completed successfully. ``` ::: 利用上述兩種方式完成swap space、filesystem的磁區劃分後(**efi system和Win10共用就不須另外劃分**),就可以進行磁區格式化。 ### 格式化、掛載磁區 #### 格式化 * filesystem格式 * efi system:vfat * Linux filesystem:ext4 * Win10 filesystem:NTFS * Swap Space:[No actual filesystem](https://superuser.com/questions/172724/what-file-system-is-swap-on-linux) ``` mkfs -t vfat /dev/sda2 #格式化efi,若和Win10共用則不須執行(共用執行可能造成崩潰) mkfs -t ext4 /dev/sda6 #格式化Linux filesystem磁區 mkswap /dev/sda7 #格式化swap磁區 swapon /dev/sda7 #掛載swap磁區 ``` #### 格式化問題 我所遇到的問題主要是**由Optane Memory所引起**,[詳情](#關於Optane-MemoryampLinux磁區格式化重要) 爬文過程中發現會遇到的問題大部分來自於**磁區已被掛載目錄**,導致無法初始化,可以先輸入``mount``確認磁區掛載情形,接著用``umount /%dir%``或是``swapoff /dev/sda?``解除掛載,接著重新格式化即可。 若有遇到其他問題再補充。 #### 掛載 根目錄``/mnt``已經在Live USB中,無須創建,<font color="red">**且必須優先掛載``/mnt``再掛其他目錄**</font> ``` mount /dev/sda6 /mnt #掛載根目錄 mkdir /mnt/boot #建立/boot目錄 mount /dev/sda2 /mnt/boot #掛載/boot #若有其他(如/mnt/home等)目錄一併掛載 lsblk #查看掛載無誤 ``` ### 確認網路環境&更新系統時間 #### 網路連接 這邊使用iwd方法,首先輸入 ``` iwctl #進入iwd模式 device list #查看網卡名稱 #假設我的網卡名稱為 wlan0 station wlan0 scan #掃描網路 station wlan0 get-networks #查看網路名稱 #假設欲連接網路名稱為'WIFI' station wlan0 connect WIFI #連接網路 #輸入網路密碼 exit ping 8.8.8.8 #確認網路環境正常 ``` #### 更新系統時間 後續在用pacman同步數據庫時需要``網路時間``和``系統時間``同步 ``` timedatectl set-ntp true #開啟時間同步 timedatectl status #檢查服務狀態 ``` **務必確認``NTP service``為``active``** ### 安裝基本系統 #### [Pacman](https://wiki.archlinux.org/title/Pacman_(%E6%AD%A3%E9%AB%94%E4%B8%AD%E6%96%87))介紹 * Pacman 軟體包管理員是 Arch Linux 的主要特色工具,結合了二進位軟體包格式和容易使用的組建系統。輕鬆管理軟體是 Pacman 的目標,無論這些軟體包是來自官方軟體庫還是由使用者自建。 * Pacman 會和主要伺服器同步軟體包清單,來保持系統處於最新狀態。在主從式架構之下,使用者只要用簡單的指令就可以下載並安裝軟體包,並補足所有相依的軟體包。 * Pacman指令: [ref1](https://ipcmen.com/pacman)、[ref2](https://home.gamer.com.tw/creationDetail.php?sn=5084476) #### 選擇鏡像站 鏡像站提供各Linux發行版本之映像檔和套件軟體,選擇臺灣本地鏡像站可以加快軟體下載速度,有兩種方式進行修改 :::spoiler reflector指令 [Reflector](https://wiki.archlinux.org/title/Reflector_(%E6%AD%A3%E9%AB%94%E4%B8%AD%E6%96%87))是一個腳本程式,它可以從MirrorStatus頁面獲得最新的鏡像列表,過濾最新的鏡像,按速度排序,並且覆蓋``/etc/pacman.d/mirrorlist``文件 ``` pacman -Sy reflector #更新並安裝reflector套件 reflector --verbose --latest 100 --sort rate --country 'Taiwan' --save /etc/pacman.d/mirrorlist ``` ::: :::spoiler 編輯文件 編輯``/etc/pacman.d/mirrorlist``,將臺灣鏡像站排在文件前面(列表中越前面的站優先級越高) [忘記vim怎麼用了ㄇ](http://www.vixual.net/blog/archives/234) ``` vim /etc/pacman.d/mirrorlist #vim編輯文件 #vim Normal模式下 :606 #移至文件中臺灣鏡像站位置(大約第600多行) V[,方向鍵] #進入選取模式,選取全部臺灣網址 y #複製選取內容 :5 #回到文件前端 p #貼上 :wq #儲存離開vim ``` ::: #### 安裝系統 這邊使用[``pacstrap``](https://man.archlinux.org/man/pacstrap.8)腳本安裝必要軟體包,包括 * [base](https://archlinux.org/packages/core/any/base/)軟體包 * [base-devel](https://archlinux.org/groups/x86_64/base-devel/):包括pacman、sudo、gcc等工具 * Linux核心 * 常規硬體韌體 ``` pacstrap /mnt base linux linux-firmware #安裝系統 ``` 可以順便用``pacstarp``在新系統中安裝未在firmware中的韌體、vim、檔案管理等套件(剛剛用的是Live USB中已經存在的),不過因為不知道哪一些是必要套件&現在不裝不影響後續,所以我到進入系統後(chroot)才進行。 ### 配置系統 #### fstab [fstab](https://wiki.archlinux.org/title/Fstab_(%E6%AD%A3%E9%AB%94%E4%B8%AD%E6%96%87))這個檔案提供了檔案系統的資訊。它定義了儲存設備和磁區如何初始化和如何聯接至整個系統。 ``` genfstab -U /mnt >> /mnt/etc/fstab #生成fstab文件 ``` 生成後 ``` vim /mnt/etc/fstab #查看fstab文件 ```  fstab table範例 應該會按照你掛載的目錄生成資料,<font color="red">若是已經配置過系統的請先刪除舊的``fstab``文件</font> ``` rm /mnt/etc/fstab #刪除舊的fstab genfstab -U /mnt >> /mnt/etc/fstab #重新生成fstab ``` :::danger * 後續可能產生[swap掛載錯誤](#Arch-Linux開機時間過久) ::: #### [Chroot](https://wiki.archlinux.org/title/Chroot_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)) 前述動作都是在Live USB中進行的,現在要進入筆電硬碟中的Arch Linux系統 :::danger 如果重裝系統或是需要重新插上 USB 做些設定(如磁區分割錯誤或目錄掛載錯誤或 Windows 系統更新後引導程序設定檔被砍),則需要先將所有的分區先掛載,再進入Chroot才會顯示你電腦裡的磁區,再次強調,先掛載``/mnt``。 ::: ``` arch-chroot /mnt #進入root ``` :::success 若是還沒安裝等等會用到的``vim``等套件,可以現在使用``pacman -S``進行安裝 ::: #### 設定時區 輸入 ``` ln -sf /usr/share/zoneinfo/%Region%/%City% /etc/localtime #設置時區 ``` ``%Region%``換為``Aisa``,``%City%``則換為``Taipei`` 執行[hwclock](https://man.archlinux.org/man/hwclock.8)生成/etc/adjtime ``` hwclock --systohc ``` 此指令假定硬體時間已被設定為UTC時間。 :::danger * 後續可能產生[雙系統時間問題](#雙系統時間不一致) ::: #### 添加語系 編輯``/etc/locale.gen``,將自己會用到的語言註解``#``消除,<font color="red">注意``en_US.UTF-8 UTF-8``一定要消除註解</font>;以下是我添加的語言,以供參考 ``` #英語 en_US.UTF-8 UTF-8 #簡體字 zh_CN.GB18030 GB18030 zh_CN.GBK GBK #繁體字(全,這邊無完整列出 zh_TW.EUC-TW EUC-TW zh_TW.UTF-8 UTF-8 ``` 接下來執行 ``` locale-gen #生成locale訊息 ``` 然後創建``/etc/locale.conf``文件 ``` vim /etc/locale.conf #建立文件 ``` 加上``LANG``語言環境,設為英語``en_US.UTF-8`` ``` LANG=en_US.UTF-8 #文件中加上此行 ``` #### 配置網路 創建``/etc/hostname``文件設置主機名稱 ``` vim /etc/hostname #建立文件 ``` 填入想要設定主機名稱 ``` %my_hostname% #文件中加上此行 ``` 接著添加對應項目到 ``` vim /etc/hosts #編輯/etc/hosts ``` 寫入以下內容,將``%my_hostname%``換成剛剛設定的主機名稱 :::info 如果是使用永久ip,請將以下的``127.0.0.1``換成永久ip位置 ::: ``` 127.0.0.1 localhost ::1 localhost 127.0.1.1 %my_hostname%.localdomain %my_hostname% ``` #### Initramfs 根據[鳥哥linux](http://linux.vbird.org/linux_basic/0510osloader.php#startup_loader)的說明,initramfs是linux在開機過程中不可或缺的**Initial RAM Filesystem**檔案系統,簡單介紹運作原理: 當bios藉由MBR(利用INT13中斷功能讀取MBR區塊)指向linux的boot sector,讀取boot loader後,boot loader會讀取``/boot``中的linux kernel,並解壓縮到主記憶體中,這時linux kernel開始接管bios後的開機工作,**它會自己再一次偵測周邊硬體,不一定會採用bios讀到的硬體資訊**,因此必須掛載根目錄``/``到SATA硬碟上來載入``/lib``中的核心模組(驅動程式),此時問題出現了,<font color="red">**linux kernal在沒有載入驅動的情形下根本不認識SATA硬碟,而驅動程式又在硬碟中**</font>,那該怎麼辦? 虛擬檔案系統(Initial RAM Disk/Initial RAM Filesystem)便是解藥,一般使用的檔名為``/boot/initramfs`` 或 ``/boot/initrd``,此檔案像kernel一樣,可以透過boot loader載入到記憶體中,並在記憶體模擬一個根目錄,**而且這一個檔案系統可以提供一支用來載入開機時必要核心模組(驅動)的程式**,通常這些模組就是 USB, RAID, LVM, SCSI 等檔案系統與磁碟介面的驅動程式,等載入完成後,它會幫助kernel重新呼叫systemd,完成開機流程,下圖為簡易圖解:  回到安裝流程,官方wiki說在安裝kernel時,initramfs已經建立,可以先到``/boot/initramfs``查看,若需要手動安裝,輸入 ``` mkinitcpio -p linux #建立initramfs ``` #### 設定root密碼 輸入 ``` passwd #設定root密碼 ``` 來設定root帳戶密碼 #### 安裝開機引導程式 純粹因為覺得rEFInd介面好看又有[多種主題](https://github.com/topics/refind-theme)(grub好像也有自訂主題功能了)可供參考,所以就毫不猶豫地裝下去了:smile: ``` pacman -S refind-efi # 下載rEFInd套件 refind-install # 安裝rEFInd vim boot/refind_linux.conf # 編輯開機選單 ``` 將文件中前兩行註解掉 ``` #"Boot with standard options" "archisobasedir=arch archisolabel=ARCH_xxxxxx" #"Boot to single-user mode" "archisobasedir=arch archisolabel=ARCH_xxxxxx single" "Boot with minimal options" "root=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" ``` #### 連網 等等重開機前會先拔掉USB,就不能用iwd了,所以必須先安裝網路服務 ``` pacman -S networkmanager #安裝 networkmanager ``` :::danger 注意重開機前一定要先安裝好網路服務,不然等等拔掉USB後甚麼事情都沒辦法做,還要再重新用Live USB安裝網路服務(若走到這步要記得``arch-chroot /mnt``再裝) ::: ### 重開機 最後確認磁區掛載、網路服務等等都沒問題後,就可以重開機啦 :::danger :warning:若在開機或未完成關機狀態下拔出USB,可能會造成錯誤,建議**先完全關機後再拔出** ::: ``` exit #先退出chroot ``` ``` poweroff #關機,拔出USB再開機即可 reboot #重新開機,如果相信自己的手速可以試試 ``` ## Arch Linux 安裝後工作 ### 重建refind_linux.conf 輸入 ``` mkrlconf --force #強制重建boot/refind_linux.conf檔案 ``` 重建後的refind_linux.conf ``` "Boot with standard options" "ro root=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" "Boot to single-user mode" "ro root=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx single" "Boot with minimal options" "ro root=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" ``` :::info **[refind後續相關設定](#rEFIend相關設定)** ::: ### 確認網路環境 前面已經安裝過``networkmaneger``,若忘記安裝可以透過Live USB再安裝即可,但我還沒踩過這坑,有遇到再補充;先執行 ``` systemctl enable NetworkManager #設定開機自動啟用 systemctl start NetworkManager #啟用netmanager systemctl enable --now NetworkManager #start指令行不通可以試試這個 ``` 若是使用有線網路,應該已經可以連線,若是筆電使用wifi環境,執行 ``` nmtui #進入networkmanager TUI ``` 選擇wifi連線 若``ping``有回應,網路環境即搭建完成。 ### 新增使用者&授權 #### 新增使用者 日常操作應使用非root使用者進行,且我們**無法利用root進入圖形介面** 將下面的``%my_user%``和``%my_group%``改為自己的命名 ``` useradd -G wheel %my_user% #新增使用者 passwd %my_user% #設定使用者密碼 chfn %my_user% #添加使用者信息,可暫時不填 mkdir -m 700 /home/%my_user% #創建主目錄 chown %my_user%:%my_group% /home/%user% #修改使用者與使用者群組 ``` #### 授權使用者 為了能夠讓新的使用者``sudo``,我們要修改``/etc/sudoers``文件 ``` pacman -S sudo #若已安裝可跳過 vim /etc/sudoers #開啟sudoers文件 ``` 新增以下文字到``root ALL = (ALL) ALL``下方,``%my_user%``為使用者名稱 ``` %my_user% ALL = (ALL) ALL #新增使用者 ``` ### 安裝圖形介面 使用``Xorg``啟用桌面環境 ``` pacman -S xorg ``` #### 圖形介面選擇 這邊只列出KDE Plasma,另有Gnome可以選擇,不過因為聽說Gnome較吃效能,所以先選用KDE KDE有三種安裝包,這邊全部列出,我選用的是最簡易的``desktop``版本 ``` pacman -S plasma #基本包 pacman -S plasma-meta #完整包 pacman -S plasma-desktop #最簡安裝包 ``` #### 安裝啟動器 KDE Plasma使用``SDDM``登入啟動器 ``` pacman -S sddm ``` :::danger :warning:如果是雙顯卡,先別進入圖形介面,可能會造成顯卡衝突,建議先安裝下列驅動和切換器 ::: ### 安裝顯示驅動 因為我的筆電是Intel內顯+Nvidia獨顯,所以除了安裝兩廠的驅動外,還要安裝切換驅動方式的``Optimus-Manager`` #### 顯示驅動 ``` sudo pacman -S xf86-video-intel #intel內顯驅動 sudo pacman -S nvidia #nvidia驅動 nvidia-prime nvidia-settings nvidia-utils opencl-nvidia lib32-nvidia-utils lib32-opencl-nvidia ``` #### yay安裝 這邊要開一個小支線,因為網路上幾乎都是透過``pacman``來安裝``Optimus-Manager``,但這必須要連得上中國的CN鏡像源才可以,所以改由透過非官方的``yay``軟體包管理來安裝,首先因為``yay``要從``github.com``上下載安裝,所以先安裝``git`` ``` pacman -S git #安裝git套件 ``` 接下來到``/opt``目錄``clone``安裝包 ``` cd /opt #到/opt目錄 sudo git clone https://aur.archlinux.org/yay.git #clone安裝包 ``` ``clone``完後變更所有者名稱 ``` sudo chown -R %my_user%:%my_group% ./yay #變更所有者 ``` 結束後進入目錄,``makepkg -si``編譯 ``` cd /opt/yay #進入目錄 makepkg -si #開始編譯 ``` :::danger :warning:``root``帳號不能執行``makepkg``指令,請利用其他非``root``使用者帳號執行 :warning:如果安裝時跳出``build()``錯誤,可能是因為使用者帳號沒有對該資料夾(通常為``/usr/%my_user%``)執行``mkdir``的權限,請重新執行``sudo chown -R %my_user% /home/%my_user%`` ::: #### 安裝Optimus-Manager 利用``yay``進行安裝 ``` yay -S optimus-manager #安裝optimus-manager yay -S optimus-manager-qt #安裝圖形化工具 ``` :::danger 本部份遇到無解問題(無法正常執行),不過顯示方面並無出現問題。 ::: :::info 更新(**含雙螢幕設定**): 若需要切換顯示狀態,可以先輸入 ``` prime--offload ``` 再輸入 ``` optimus-manager --switch nvidia #切換至獨顯(雙螢幕) optimus-manager --switch intel #切換至內顯 optimus-manager --switch hybrid #切換至混合模式(有一定機率crash) ``` ::: #### SDDM登入啟動器 ``` pacman -S sddm konsole #安裝sddm和圖形界面終端機 systemctl strat sddm #啟用圖形界面 systemctl enable sddm #設定開機自動啟動(若未安裝konsole先不要設定) ``` :::success :smile:至此已經完成必要的系統&圖形界面安裝,其餘有關Arch linux的相關應用程式安裝會詳細說明於[Arch Linux常用應用程式+系統配置](/V5Wv9I96QAOfzrxospHOtA)。 ::: ## rEFIend相關設定 ### 主題設定 rEFIend界面的config設定會在``/boot/EFI/refind/refind.conf``中進行修改 ``` sudo vim /boot/EFI/refind/refind.conf #編輯refind.conf ``` ``refind.conf``中有許多可以修改的地方,詳情可以在[conf.option](https://www.rodsbooks.com/refind/configfile.html#adjusting)中了解,我只修改了``timeout``和``include``。 #### 主題分享 陸續在github上看了幾個主題,分享在此 [refind-theme-regular](https://github.com/bobafetthotmail/refind-theme-regular) [rEFInd-glassy](https://github.com/Pr0cella/rEFInd-glassy) [rEFInd-Theme](https://github.com/initramfs/rEFInd-Theme) :::danger :warning:在設定主題的過程中,發現在**Linux環境**中不管怎麼修改``refind.conf``都行不通,重裝rEFInd也不行,折騰一週後:cry:,在windows修改成功惹, ``cmd``中輸入 ``` mountvol Z: /s #掛載EFI分區 Z: #進入分區 ``` 發現windows中看到的EFI分區和Linux中的EFI不同(修改時間為第一次安裝rEFInd的時間,而非重新安裝的時間:question:),這時再輸入 ``` cd /EFI/refind/ #進入refind資料夾 notepad refind.conf #修改refind.conf ``` 發現修改後有效,但在後續``kernel panic``重裝後在Linux修改又恢復正常,WTF。 ::: ### 在windows中設定refind開機引導 **若想在windows環境中變更開機引導**,在``cmd``中輸入 ``` mountvol Z: /s #掛載EFI分區 bcdedit #查看windows開機資訊 ```  ``path``欄位即為開機引導的efi檔位置,接著確認``Z:/EFI/refind/refind_x64.efi``路徑位置,輸入 ``` Z: #進入EFI分區 bcdedit /set {bootmgr} path \<path>\<to>\refind_x64.efi ``` 再輸入``bcdedit``確認``path``欄位是否變更成功。 ## 後續問題 ### 雙系統時間不一致 這邊還沒有很懂,先上[官方wiki](https://wiki.archlinux.org/title/System_time_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)),提供不少知識,看完補上原理 根據wiki,不改linux系統時間,變更windows採用UTC時間,進入``regedit``創建``DWORD``值 ``` HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation\RealTimeIsUniversal ``` 並設置十六位元值``1``,Linux維持預設,應該可以獲得解決。 ### Arch Linux開機時間過久 安裝後發現開機時會在畫面出現``a start job is running for dev-disk-by... (1min 30s)``,爬文後發現是swap space沒有啟用,解決方法如下 查看swap是否被掛載 ``` mount ``` 發現swap space沒有被掛載,所以出現錯誤訊息 查看各磁區UUID ``` sudo blkid #記下真實swap磁區UUID sudo vim /etc/fstab #查看swap磁區UUID ``` 發現兩個UUID不同,**把fstab中的swap UUID改成``blkid``中所得的swap UUID即可**;重開系統,錯誤訊息消失。 ### Kernel Panic錯誤 在一次系統更新的過程中導致Kernel Panic產生,開機時跳出錯誤訊息``Kernel Panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)``,是**因為缺少更新後的新版核心所對應的[initramfs](#Initramfs)**,爬文後觀察到的解決辦法為 1. 從開機引導中選擇另外一個kernel進入系統,但我只裝一個(不太對)。 2. 檢查[``fstab``](#fstab)是否正常。 3. 更新initramfs 利用Live USB開機,接著``mount``各磁區(記得先從``/mnt``開始,如果忘記編號可以用``cfdisk``確認),接下來 ``` arch-chroot /mnt #進入磁區 sudo update-initramfs -u -k %version% #更新版本(%version填入對應版本%) ``` 因為怕搞錯版本,我沒有使用更新指令,而是輸入安裝時的指令 ``` mkinitcpio -p linux #建立initramfs ``` 重開機後還是不行,我決定重裝kernel ``` cd /boot #進入/boot目錄 rm -f vmlinuz #須注意-f為強制刪除檔案 pacstrap /mnt linux linux-firmware #若沒有在系統內安裝pacstrap,則要先exit退出系統 ``` :::danger :warning: 重裝kernel雖然修正了kernel panic問題,但開機時會出現``Segmentation fault``,不影響使用,會持續觀察後續狀況。 ::: ## 參考資料 陸續參考許多資料,依照主題附錄在此。 ### Arch Linux + Windows 10雙系統安裝 [arch linux官方wiki安裝教學(**強烈建議先看過此篇**)](https://wiki.archlinux.org/title/Installation_guide) [Archlinux 安裝 Part 1 - Windows & Archlinux 雙系統](https://huangno1.github.io/archlinux_install_part1_basic/) --> <font color="red">**大推超詳細!!!**,[blog](https://huangno1.github.io/)中還有安裝後續的設定等等,非常值得一看!!!</font> [交大資工arch linux鏡像站](http://archlinux.cs.nctu.edu.tw/) [Dual boot Arch Linux and Windows the right way](https://medium.com/swlh/dual-boot-arch-linux-and-windows-the-right-way-7f59969f7525) [[分享] Arch Linux與Win10雙系統基本安裝流程](https://www.ptt.cc/bbs/Linux/M.1522870468.A.155.html) [Arch Linux + KDE安装教程](https://www.jianshu.com/p/7c2ab582e13d) [2021 Archlinux双系统安装教程(超详细)](https://zhuanlan.zhihu.com/p/138951848) [[筆記]Arch安裝過程筆記](https://snsd0805.github.io/jekyll/update/2019/07/01/%E7%AD%86%E8%A8%98-Arch%E5%AE%89%E8%A3%9D%E7%AD%86%E8%A8%98.html) [Arch Linux 安裝筆記](/6blSObqrSxqsodtptKtTGg) ### 顯示雜症 [ArchLinux KDE安装Nvidia显卡驱动](https://cloud.tencent.com/developer/article/1745686) [Archlinux上Nvidia和Intel双显卡切换方案记录](https://www.jianshu.com/p/e5ecc2e72553) ### rEFInd [The rEFInd Boot Manager by Roderick W. Smith](https://www.rodsbooks.com/refind/)--> **最完整教學,必看!!!** [Installing refind from Windows 10](https://schdck.github.io/Installing-refind-from-Windows-10) [rEFInd引导使用教程](https://zhuanlan.zhihu.com/p/67114559) [使用rEFInd来引导多个操作系统](https://www.codenong.com/cs106485785/) ### KDE Plasma設定 這邊的設定會在[Arch Linux常用應用程式+系統配置](/V5Wv9I96QAOfzrxospHOtA)介紹 [Plasma 5 on Arch Linux – Install and Configure](https://averagelinuxuser.com/plasma-5-on-arch-linux-install-and-configure/) [Arch Linux with KDE Plasma Installation Guide](https://github.com/XxAcielxX/arch-plasma-install) ### kde theme https://github.com/vinceliuice/Layan-kde
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.