在VMWare上安裝Arch Linux

来源:https://www.cnblogs.com/freerqy/archive/2018/03/04/8502838.html
-Advertisement-
Play Games

1、為什麼選擇Arch Linux Arch Linux 是通用 x86-64 GNU/Linux 發行版。Arch採用滾動升級模式,盡全力提供最新的穩定版軟體。初始安裝的Arch只是一個基本系統,隨後用戶可以根據自己的喜好安裝需要的軟體並配置成符合自己理想的系統。 —— 引自Arch Linux ...


1、為什麼選擇Arch Linux

Arch Linux 是通用 x86-64 GNU/Linux 發行版。Arch採用滾動升級模式,盡全力提供最新的穩定版軟體。初始安裝的Arch只是一個基本系統,隨後用戶可以根據自己的喜好安裝需要的軟體並配置成符合自己理想的系統。  —— 引自Arch Linux Wiki

  我就為了上面的最後一句話:”用戶可以根據自己的喜好安裝需要的軟體並配置成符合自己理想的系統“。然後自己就根據Arch Linux 的WiKi上的安裝教程,再配合網上其他人的安裝教程安裝並配置自己的Arch Linux;另外說一句,Arch Linux的WiKi真的是非常全面,基本上可以解決日常使用中的大部分問題,而且大部分都有對應的中文翻譯(這篇教程很多也直接引用了Arch Linux WiKi上安裝教程的內容)。然而,就算有如此多的資源可用,但在實際安裝過程中還是出現了不少問題。

  廢話少說,下麵就開始安裝我們的Arch Linux吧!

2、安裝準備

2.1 準備

  由於我是使用VMWare workstation虛擬機(VMWare的安裝和使用就不介紹了,網上一搜一大片)來安裝的Arch Linux。新建一個虛擬機,然後我為Arch Linux在WMWare上分配了1G的記憶體和8G的硬碟,你也可以使用更大的硬碟空間。要註意的是VMWare在新建虛擬機選擇系統時是沒有Arch Linux的選項的,這裡我選擇的是”其他Linux 3.x內核64位“,因為我使用的是x86_64的ISO映像文件;然後在虛擬機中設置下載好的ISO映像文件的路徑即可,再在“虛擬機->設置->選項->高級”中勾選”通過EFI而非BIOS引導(B)“選項(其實這一步不是必須的,最要是看你使用什麼方式來引導系統),最後直接啟動虛擬機就可以開始正式安裝Arch Linux了。

  先給出幾個有用的Arch Linux的WiKi鏈接:

  1、Installation guide(簡體中文)

  2、VMware/Installing Arch as a guest (簡體中文)

上面兩個鏈接對安裝基本的Arch Linux其實就足夠了,但是由於Arch Linux是“高度自治”的Linux發行版,所以在安裝後需要根據自己的喜好來配置系統(例如,對於圖形桌面的選擇,當然前提是你需要使用圖形桌面),因此你還需要搜索你需要的其他信息。

2.2 啟動安裝archlinux

  好了,現在開始安裝Arch Linux吧,使用EFI和BIOS引導時的啟動界面分別如下圖:

 使用EFI引導時的啟動界面

 

使用BIOS引導時的啟動界面

無論使用哪種引導方式,均選擇第一項啟動就可以了,啟動成功後就會進入命令行模式,此時如果在真機上安裝的話,可以在此處列出efivars目錄以驗證啟動模式來判斷主板是以何種方式引導系統的(這對之後對硬碟的分區有用):

ls /sys/firmware/efi/efivars

如果該目錄不存在,系統就可能以BIOS模式啟動。

2.3 連接到網路

  由於Arch Linux在啟動後,守護進程dhcpcd已被預設啟用以探測有線設備,因此,如果是在真機上安裝的話,請確保使用的是有線網路。

  Arch Linux的安裝必須使用網路才能完成,使用下麵命令以驗證網路是否正常:

ping -c 3 www.baidu.com

  如果網路不正常,可能是由於dhcp服務沒有開啟,可以使用以下命令來開啟此服務:

systemctl enable dhcpcd.service

2.4 更新系統時間

  首先還是驗證一下系統的時間是否正常:

timedatectl status

如果時間和當前時間對不上的話,使用下麵命令來更新系統時間:

timedatectl set-ntp true

ntp服務會每隔一段時間進行一次網路對時,更新系統時間後,可以再次驗證一下時間是否正常。

2.5 建立硬碟分區

  硬碟如果被系統識別到,就會被分配為一個塊設備,如/dev/sda;因此先查看一下硬碟的狀態:

lsblk

 輸出如下圖:

這裡sda即是我分配給虛擬機的8GB硬碟,因為sda節點下無任何顯示,所以此硬碟還沒有分區;loop0和sr0可以忽略。如果硬碟已經有分區,sda節點下應當會顯示如下圖:

具有3個分區的硬碟

 也可以使用命令:

fdisk -l

來查看硬碟的分區情況。

接下來我們要對這8GB的硬碟進行分區,能夠創建分區的命令很多,如fdisk,parted,cfdisk等,這裡使用有GUI的cfdisk命令(在真機上分區時,請認真檢查你的硬碟是否選擇正確,如果你有多個硬碟,可能你要用來安裝Linux的硬碟並不是如下所寫的/dev/sda,而是/dev/sdb也說不定;或者你是想安裝雙系統):

cfdisk /dev/sda

 對於一個選定的硬碟,有一些分區是必須要有的:

  • 一個根分區(掛載在根目錄)  /  ,
  • 如果 UEFI 模式被啟用,你還需要一個 EFI 系統分區
  • Swap 可以在一個獨立的分區上設置,也可以直接建立 交換文件

因為我前面設置的是EFI引導,因此需要在此處需分一個EFI分區(EFI分區推薦大小為512MB)。使用cfdisk分區命令後進入分區界面,如下圖:

分區表類型選擇

 這裡我們選擇gpt分區表,進入之後,我就分了上面所講的3個必要分區,分別為根分區,EFI系統分區,Swap分區:

使用cfdisk分好區

 分好區後確認寫入分區到硬碟,然後退出分區工具,再次使用lsblk查看一下,顯示如下圖:

 已分好區後的硬碟

 2.6 格式化分區

  分區完成後,需要對分區做格式化處理,由於這裡使用了EFI分區,因為EFI分區需要FAT32文件格式(如果是在真機上已安裝有Windows的情況下安裝Linux成雙系統,且以EFI引導系統,則EFI分區不需要再次格式化),所以需要將其格式化為FAT32格式;根分區格式化為ext4格式;設置並開啟Swap分區:

mkfs.fat -F32 /dev/sda1
mkfs.ext4 /dev/sda2
mkswap /dev/sda3 -L Swap
swapon /dev/sda3

 2.7 掛載分區

  格式話完成後,需要將分區掛載到 /mnt ,先掛載根分區(這裡是/dev/sda2);再掛載EFI分區(這裡是/dev/sda1),掛載EFI分區時,需要在/mnt上先創建 boot/EFI  目錄,然後將EFI分區掛載到/mnt/boot/EFI上;Sawp分區不需要掛載:

mount /dev/sda2 /mnt
mkdir -p /mnt/boot/EFI
mount /dev/sda1 /mnt/boot/EFI

3、安裝基本系統

3.1 選擇軟體鏡像源

  在安裝基本系統之前,需要修改一下軟體鏡像源,不然安裝基本系統時會安裝不上。鏡像源列表在 /etc/pacman.d/mirrorlist  文件中。

我們選擇軟體鏡像源時,最好選擇國內的鏡像源,因為國內網路環境的關係,選擇其他國家或地區的鏡像源,安裝時可能很慢或失敗也不一定。

下麵首先添加了阿裡巴巴鏡像源到一個新文件(此處為mrlist),然後從mirrolist文件中選出所有國內鏡像源追加到mrlist中,然後將mirrorlist文件的內容追加在mrlist的最後面,最後將mrlist重命名為mirrorlsit:

echo '## China\nhttp://mirrors.aliyun.com/archlinux/$repo/os/$arch' > mrlist
grep -A 1 'China' /etc/pacman.d/mirrorlist|grep -v '\-\-' >> mrlist
cat /etc/pacman.d/mirrorlist >> mrlist
mv mrlist /etc/pacman.d/mirrorlist

執行完以上命令後,可以使用以下命令來查看mirrorlist文件是否修改成功:

nano /etc/pacman.d/mirrorlist

若修改成功,會看到mirrorlist文件中的開頭的內容全是國內的鏡像源。最後,建議將163、清華(tuna)放在最前面。

3.2 開始安裝系統

  修改完軟體鏡像源後,然後就可以開始安裝系統了:

pacstrap -i /mnt base base-devel vim

 使用-i選項會在實際安裝前進行確認;安裝 base-devel組,可以讓我們通過 AUR (簡體中文) 或者 ABS (簡體中文) 編譯安裝軟體包,如果不需要通過AUR或ABS安裝軟體包,則只需要安裝base組就可以了 

4、配置系統

4.1 Fstab

  等待基本系統安裝完成後,用以下命令生成 fstab 文件 (用 -U 或 -L 選項設置UUID 或捲標):

genfstab -U /mnt >> /mnt/etc/fstab

 然後使用以下命令檢查一下生成的fstab文件是否正確:

nano /mnt/etc/fstab

如果生成的fstab文件正確,會看到之前分的3個分區的信息。

4.2 Chroot

  切換到新安裝的系統:

arch-chroot /mnt

chroot之後,當前目錄就變成為 。此步會自動進行創建初始的ramdisk環境,但是如果以後更改了內核配置了的話,最好使用一下命令再重新生成ramdisk環境:

mkinitcpio -p linux

4.3 設置時區

  然後將系統時區設為東八區:

ln -sf /usr/share/zoneinfo/Asia/Chongqing /etc/localtime

設置時間標準為UTC,並調整時間漂移:

hwclock --systohc --utc

4.4 配置Locale

  這一步對使用地區和語言等進行配置。在/etc/locale.gen文件中進行配置,locale.gen是一個僅包含註釋文檔的文本文件。指定需要的本地化類型,只需移除對應行前面的註釋符號()即可,使用下麵命令打開locale.gen文件:

nano /etc/locale.gen

然後找到下麵3項,去掉每項前面的#即可:

en_US.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8
zh_TW.UTF-8 UTF-8

locale-gen生成Locale信息,併列出所有啟用的Locale:

locale-gen
locale -a

最後創建locale.conf文件,並提交所要使用的本地化選項,然後使用locale命令顯示當前正在使用的Locale和相關的環境變數:

echo LANG=en_US.UTF-8 > /etc/locale.conf
locale

/etc/locale.conf用來配置整個系統所使用的Loacle,而這也可以由用戶通過用戶自己的 ~/.config/locale.conf (~表示當前用戶的Home目錄)來覆蓋整個系統的Locale配置。

提示:建立 /etc/skel/.config/locale.conf 文件,可以在新用戶的建立(新用戶的建立見下文)且同時創建用戶主目錄(useradd -m)時,自動應用其中的Locale(會將此文件複製到新建用戶的 ~/.config/locale.conf 中)。

註意:不推薦此時設置任何中文locale,因為這樣做可能會導致tty顯示亂碼。

4.5 設置主機名

  要設置主機名,創建 /etc/hostname 文件並將主機名寫入該文件即可。我的主機名為freeLinux:

ehco freeLinux > /etc/hostname

然後配置主機名對應的IP到 /etc/hosts  中:

nano /etc/hosts

將其中的主機名改為你自己的主機名(我這裡是freeLinux):

127.0.0.1    localhost.localdomain    localhost
::1          localhost.localdomain    localhost
127.0.1.1    freeLinux.localdomain    freeLinux

4.6 網路配置

  若使用有線網路的話,啟動dhcp服務:

systemctl enable dhcpcd.service

若使用無線網路的話,則安裝以下幾個軟體包(因為使用的時虛擬機,並未驗證過):

pacman -S iw wpa_supplicant dialog

4.7 設置Root用戶密碼

  設置root密碼:

passwd

然後輸入兩次密碼即可。

4.8 創建新用戶

  因為使用root用戶登陸後,root用戶擁有系統的所有操作許可權,這樣對系統的操作非常不安全(如一不小心將系統文件刪除了,怎麼辦?),所以需要新建一個普通用戶,讓其對系統的操作受到一定限制,使用下麵命令新建用戶free:

useradd -m -G wheel -s /bin/bash free
  • -m:創建用戶主目錄(/home/[用戶名])
  • -G:用戶要加入的附加組列表;此處將用戶加到wheel組中,之後可以給這個組執行sudo命令的許可權
  • -s:指定了用戶預設登錄shell的路徑,此處設置為bash的路徑

更多創建新用戶的使用請查看Arch Linux WiKi:Users and groups(簡體中文)

然後修改新創建用戶的用戶密碼,和修改Root用戶密碼所使用的命令一樣(只是需要指定要修改密碼的用戶名):

passwd free

然後輸入兩次密碼即可。

以後大部分時間我們都將使用此普通用戶來工作,但由於此用戶的操作許可權有限,有時會對很多操作帶來不便,因此需要給該用戶在某些情況下提權,這就需要允許該用戶所在的wheel組有執行sudo命令的許可權,此時需要修改 /etc/sudoers文件 ,但請不要直接修改此文件,而是用下麵的命令修改:

visudo

使用上面命令打開sudoers文件後,刪除wheel組前面的註釋(#)即可:

## Uncomment to allow members of group wheel to execute any command
%wheel ALL=(ALL) ALL

若執行visudo時,提示找不到vim,則請先安裝vim後在執行上面的操作,執行下麵指令安裝vim:

pacman -S vim

4.9 安裝grub

  grub是一個啟動引導器,同時支持EFI和BIOS方式的啟動。若使用的UEFI方式引導系統,則還需要安裝efibootmgr,如果是雙系統的話,還需要安裝os-prober,且如果使用Intel CPU的話,則需要安裝 intel-ucode 並啟用因特爾微碼更新

因為我們使用的是虛擬機和UEFI引導方式,因此只需要安裝grub和efibootmgr:

pacman -S grub efibootmgr

然後,還需要將其安裝到EFI分區當中:

grub-install --recheck /dev/sda

註意:此處的 /dev/sda 後沒有數字。

若提示 error:cannot find EFI directory,則說明EFI文件夾的路徑不正確,找不到EFI文件夾的位置,此時就需要在上面命令中加入 efi-directory 參數指定安裝路徑:

grub-install --recheck /dev/sda --efi-directory=/boot

最後還需要生成一個grub的配置文件:

grub-mkconfig -o /boot/grub/grub.cfg

提示:如是在已經有Windows系統的PC上安裝Linux成雙系統,那麼由於在安裝介質環境中,此時可能檢測不到Windows系統。在之後重啟後進入Arch Linux後,再重新執行一遍此命令,這樣就能檢查到所有的系統了。

4.10 重啟系統

  到此,Arch Linux的基本系統的安裝就完成了。現在需要重啟以進入新系統:

exit
umount -R /mnt
reboot

下圖顯示為使用exit命令退出chroot環境前後的命令提示符:

退出chroot環境之前

退出chroot環境之後

若使用exit無法退出chroot環境,請多輸入幾次或則請使用Crtl+D組合鍵多試幾次。退出chroot環境後再執行之後的操作即可。

重啟系統之後,會出現下圖啟動界面:

 

重啟之後的啟動界面 

 選擇第一個就進入到我們新安裝的Arch Linux了,如下圖:

 

進入新系統之後的界面

 然後我們直接使用前面創建的free用戶登陸到系統,如下圖:

使用free登陸到系統

這樣,Arch Linux的基礎系統就算安裝完成了。

由於還沒有安裝桌面,所以登陸後還處在命令行模式。之所以使用free用戶登陸而不直接使用root用戶登陸(實際上這也是安全的方式,除非你確定知道你想以root用戶登陸做些什麼),是因為我之後只想預設在free用戶下安裝和啟動桌面;而如果使用root登陸時,預設還是繼續運行在命令行模式,而如果想要在root用戶下使用桌面,則還需要相關的配置。

桌面及其基本軟體的安裝等配置,之後再寫吧!

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一.概要 本文主要是學習CodeFirst思想。技術上的實現是C#(.net framework4.6.1) 控制台 + PostgreSQL 10.2.1 代碼:https://pan.baidu.com/s/1ggzHRub 二.實現過程 1.新建控制台 2.添加nuget包:EntityFra ...
  • 一、查看是否安裝了ssh服務 apt-cache policy openssh-client openssh-server ubuntu預設安裝了openssh-client,openssh-server需要手動安裝 二、安裝ssh服務 apt-get install openssh-server ...
  • 一、環境說明:操作系統:CentOS-7-x86_64-Minimal-1611虛擬機:VMware® Workstation 12 Pro;12.5.5 build-5234757伺服器:node1(User1),node2(User2)二、實現內容:node1 伺服器用戶 User1 可通過 S... ...
  • 有時候我們對文檔過濾會有這樣的需求: 例如,製作一個比較全的姓氏拼音字典。首先去網上找一個常用姓氏拼音表。我隨便找了一個: 通常網上找到的都是些包含音調的字元序列。我們的主要目的包括: 假如上述文件存放在yindiao.txt中。 (1).去掉非拼音相關的字元,只保留拼音字母,並存放到yindiao ...
  • 一、安裝 apt-get install mysql-server 二、本地連接 mysql預設開啟了本地連接 直接通過mysql -uuser -p,然後輸入密碼訪問 三、開啟遠程訪問 3.1、創建一個與管理員同等許可權的用戶 grant all privileges on *.* to 'user ...
  • 本文主要是記錄吾八哥本人在Windows10下安裝Docker的過程,當然這些步驟也是在網上搜索查閱資料得知而來的!具體步驟如下: 一、啟用Hyper-V 打開控制面板 - 程式和功能 - 啟用或關閉Windows功能,勾選Hyper-V,然後點擊確定即可,如圖: 點擊確定後,啟用完畢會提示重啟系統 ...
  • Nginx (engine x) 是一個高性能的HTTP和反向代理伺服器,也是一個IMAP/POP3/SMTP伺服器。Nginx是由伊戈爾·賽索耶夫為俄羅斯訪問量第二的Rambler.ru站點(俄文:Рамблер)開發的,第一個公開版本0.1.0發佈於2004年10月4日。 其將源代碼以類BSD許 ...
  • kali的網卡配置文件為/etc/network/interfaces 下麵定義了lo、eth0和eth1的配置 然後重啟網路 或者重啟某個網卡 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...