首頁 > 軟體

用Grub4dos引導硬碟安裝Arch Linux

2020-06-16 18:04:54

本來在工作機上用WinXP,最近想深入Linux開發,於是決定裝個Linux。家裡的Arch Linux + Awesome用得很好,於是決定在工作機上也裝一套。

不想刻盤,也不想用U盤,通過Grub引導吧。這方面的經驗分享很多,我參考的是這一篇 http://www.linuxidc.com/Linux/2015-03/114879.htm

準備grub4dos

下載Grub4dos, http://www.linuxidc.com/Linux/2009-01/18027.htm 。

解壓,將其中得 grldr, grub.exe 和 sample 目錄下的 menu.lst 複製到 C:。

修改c:boot.ini。新增一個啟動項c:grldr="Grub",並把預設的入口改為c:grldr

[boot loader]
timeout=10
default=c:grldr
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect /noexecute=alwaysoff
c:grldr="Grub"

你可以重新啟動,試一下看grub4dos是否正常工作。

準備映象

https://www.archlinux.org/download/ 下載最新版 ArchLinux,當前的版本是 2015.03.01
你可以下載其torrent檔案,然後用bt工具下載,也可以從映象站點直接下載。

下載完之後,映象檔案是 archlinux-2015.03.01-dual.isodual表示iso裡同時包含了32位元和64位元兩個版本。
將此映象複製到C槽根目錄,並用解壓縮工具解壓出arch/boot/i686下的兩個檔案: archiso.img 和 vmlinuz,放在C槽根目錄下。(i686表示32位元的系統,如果你想安裝64位元的,就把arch/boot/x86_64下的兩個檔案解壓出來)

引導

然後在menu.lst中增加一個入口:

title Install ArchLinux ...
root (hd0,0)
kernel /vmlinuz     archisolabel=ARCH-201503
initrd /archiso.img

hd0表示第一個硬碟,如果你只有一個硬碟,它一定是hd0
(hd0,0)表示第一個硬碟的第一個分割區。

重新啟動機器,用Install ArchLinux ...入口,引導進程會因為找不到光碟而停下來,並給你一個root使用者的提示符。

我們手動載入映象:

mkdir /iso
mount -r -t ntfs /dev/sda1 /iso
modprobe loop
losetup /dev/loop6 /iso/archlinux-20150301-dual.iso
ln -s /dev/loop6 /dev/disk/by-label/ARCH-201503
exit

因為我們幫忙掛載好了映象,系統完成了引導,進入系統,我們得到一個root使用者的提示符。

(注意,如果你的C槽是Fat32分割區,就把-ntfs改為-vfat。)

準備分割區

執行 fdisk /dev/sda,新增三個分割區,

  • /dev/sda7 (512M, 用於/boot),
  • /dev/sda8 (30G,用於根系統,即 /),
  • /dev/sda9 (60G,用於 /home)

將三個分割區格式化

mkfs.ext4 /dev/sda7
mkfs.ext4 /dev/sda8
mkfs.ext4 /dev/sda9

掛載 /boot/home

# mount /dev/sda8 /mnt
# mkdir /mnt/{boot, home}
# mount /dev/sda7 /mnt/boot
# mount /dev/sda9 /mnt/home

安裝

為了加快軟體下載速度,我們先改一下源列表,編輯 /etc/pacman.d/mirrorlist
搜尋China,把中國的映象站點都保留下來,其餘的都刪掉。
然後,把163的映象站點放在第一位。

安裝基本系統和網路工具

pacmstrap /mnt base base-devel net-tools

生成檔案分割區表

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

arch-chroot /mnt 改變根目錄,到我們真正安裝的系統下去操作:

  1. 編輯locale.gen,把en_US.UTF-8, zh_CN.UTF-8, zh_CN.GBK, zh_CN.GB2312, zh_CN.GB18030前的#去掉,然後執行locale-gen生成這些字元集的locale。
  2. 設定時區, ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
  3. 設定主機名, echo your_host_name >> /etc/hostname
  4. 生成ramdisk, mkinitcpio -p linux
  5. 使用者,先用passwd更改root的密碼,然後useradd -m -g users -G wheel -s /bin/bash your_user_name新增使用者,並passwd your_user_name設定密碼。

然後exit退出chroot,重新啟動吧。再進winXP,改一下c:menu.lst,新增ArchLinux的啟動入口

title GNU/Linux ArchLinux
root (hd0,6)
kernel /boot/vmlinuz-linux root=/dev/sda8 ro vga=791 init=/usr/lib/systemd/systemd
initrd /boot/initramfs-linux.img
boot

重新啟動後,發現ArchLinux沒有自動聯網,我手動執行了一下 dhcpd,網路就通了。

圖形介面

你可以 lspci -v看一下,發現所有的裝置都已經被驅動起來。這就是ArchLinux爽的地方。

為xserver安裝顯示驅動: # pacman -S xf86-video-ati xf86-video-intel
Ati驅動獨立顯示卡,intel驅動GPU。

檢查有沒有 startx 程式,如果沒有,就安裝 xorg-xinit

接下來,就是我常用的軟體了,我最愛的編輯器Emacs和最喜歡的視窗管理器Awesome。

對了,還有fcitx輸入法。因為我用雙拼,所以不覺得Linux下的輸入法有多遜。

編輯 ~/.xinitrc,內容如下:

export LC_CTYPE="zh_CN.UTF-8"
export XMODIFIERS=@im=fcitx
fcitx -d
exec dbus-launch awesome

注意, awesome 前面的 dbus-launch 是必要的。這樣,檔案管理器才會顯示可以掛載的捲和移動裝置。

startx,開始工作吧。

筆電之前用 winxp 系統,風扇老是嗚嗚叫,現在灰常安靜有沒有。


IT145.com E-mail:sddin#qq.com