国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

詳解在在U盤上安裝 ArchLinux 教程

2024-08-27 23:58:56
字體:
來源:轉載
供稿:網友

上教程我們講了如何在移動硬盤上安裝ArchLinux,本教程我們再來討論一下如何在U盤上安裝 ArchLinux,這樣我們對移動存儲安裝 ArchLinux 就有了鞏固.

本篇文章基于上次移動硬盤上安裝 ArchLinux 的經歷修改補充而來,不過半年的時間,一些基礎組件就已經發生了變化,Arch Linux 可真是夠“折騰”的.

PS:基于半年的 Arch Linux 使用經驗,我 合租的 Linode VPS 也用上了 Arch,目前感覺尚好,Nginx + PHP-FPM 確實是不錯的組合,Linode 使用修改過的 Linux 內核,AUR 上也有人發布自己制作的更新版,還沒研究怎么升級.

基本系統安裝

和上次移動硬盤安裝一樣,選擇 32 位系統,安裝介質使用 archlinux-2013.07.01-dual.iso dd 到另一個U盤,使用U盤啟動,自動以 root 身份進入系統,插入移動硬盤,分區,格式化,掛載.

本想使用 GPT 分區表,查了一些資料,為了使這個U盤在 BIOS 和 UEFI 電腦上都能用,需要創建一個 BIOS boot 分區,2M 大小足夠,位置盡量靠前,多系統的話還要創建一個 200M 的 EFI System Partition(ESP) 分區,這些都不是問題,但實際做下來,GPT 中的 NTFS 分區在 Win7 下死活不認,想用這個分區作為常規U盤使用就不行了,只好再回到 MBR 分區表,如果是移動硬盤用 GPT 應該沒有問題.

所以仍然使用 MBR 分區,所以就要用 fdisk 或者 cfdisk 了,不能使用支持 GPT 的 gdisk 和 cgdisk,4k 對齊也是自動完成,有趣的是,如果想把 GPT 分區表轉換成 MBR 分區表,還得借助 gdisk:r 進入 Recovery 模式,g 進入 MBR 模式,w 進行轉換,根據實際情況,有些分區轉換未必能夠成功,不過變回 MBR 分區表是沒有問題的.

NTFS 分區得在第一個分區,不然 Windows 不認,啟動U盤是 /dev/sdb,目標U盤就成了 /dev/sdc.

  1. # fdisk /dev/sdb 
  2.       
  3.     Disk /dev/sdc: 8022 MB, 8022982656 bytes, 15669888 sectors 
  4.     Units = sectors of 1 * 512 = 512 bytes 
  5.     Sector size (logical/physical): 512 bytes / 512 bytes 
  6.     I/O size (minimum/optimal): 512 bytes / 512 bytes 
  7.     Disk label type: dos 
  8.     Disk identifier: 0x00000000 
  9.       
  10.     Device      Boot    Start       End         Blocks      Id      System 
  11.     /dev/sdb1           2048        1804287     901120      7       HPFS/NTFS/exFAT  --Vevb.com 
  12.     /dev/sdb2   *       1804288     2009087     102400      83      Linux 
  13.     /dev/sdb3           2009088     10405887    4198400     83      Linux 
  14.     /dev/sdb4           10405888    15669887    2632000     83      Linux 

第一個分區先用 ntfs,當正常U盤使用,如果以后需要用到 ESP 分區,直接用這個分區轉,或者切一部分空間過去,第二個分區 100M,掛 /boot,第三個分區 4G,作為 ArchLinux 根分區,第四個分區 2.5G,作為 $HOME.

格式化分區:如果使用 xfs 分區格式:

  1. # mkfs.ntfs -f /dev/sdc1 -L f004-c 
  2. # mkfs.xfs -n size=64k -l lazy-count=1 /dev/sdc2 -L f004-boot 
  3. # mkfs.xfs -n size=64k -l size=128m,lazy-count=1 /dev/sdc3 -L f004-a 
  4. # mkfs.xfs -n size=64k -l size=128m,lazy-count=1 /dev/sdc4 -L f004-b 

-n size=64k 參數增加了文件名(目錄)區域大小(默認 4k),這樣可以減少 IO 消耗,代價是 CPU 消耗多一些,這對現代計算機顯然不是問題,-l size=128m 參數擴大日志的容量(默認 10m),更安全,代價是掛載時間會長一些, -l lazy-count=1 參數減少 superblock 讀寫次數,提高性能.

如果使用 ext4 分區格式:

  1. # mkfs.ntfs -f /dev/sdc1 -L f004-c 
  2. # mkfs.ext4 -b 4096 -m 0 -i 16384 -O '^has_journal' /dev/sdc2 -L f004-boot 
  3. # mkfs.ext4 -b 4096 -m 1 -i 16384 -O '^has_journal' /dev/sdc3 -L f004-a 
  4. # mkfs.ext4 -b 4096 -m 0 -i 16384 -O '^has_journal' /dev/sdc4 -L f004-b 

-b 4096 是每個存儲塊的大小,-m 1 是指定 root 保留空間為 1%,home 區就不留了,-i 16384 是指定多少字節的數據設置一個 inode 節點,增加它的值會減少 inode 的總數,占用的空間會少一些,相應的能夠存儲的文件數量也減少了,這個稍微注意一下就好,一般都夠用,-O '^has_journal' 是關掉文件系統日志,有點小危險.

經過兩天的折騰,個人感覺 ext4 在U盤上讀寫速度快一些.

掛載分區:

  1. # mount /dev/sdc3 /mnt 
  2. # mkdir /mnt/boot 
  3. # mount /dev/sdc2 /mnt/boot 
  4. # mkdir /mnt/home 
  5. # mount /dev/sdc4 /mnt/home 

df -h 檢查一下:

  1. # xfs 
  2. Filesystem  Size    Used    Avail   Use%    Mounted on 
  3. /dev/sdc3   3.9G    33M     3.9G    1%      /mnt 
  4. /dev/sdc2   82M     5.2M    77M     7%      /mnt 
  5. /dev/sdc4   2.4G    33M     2.4G    2%      /mnt/home 
  6.   
  7. # ext4 
  8. Filesystem  Size    Used    Avail   Use%    Mounted on 
  9. /dev/sdc3   3.9G    8.1M    3.8G    1%      /mnt 
  10. /dev/sdc2   96M     48K     96M     1%      /mnt 
  11. /dev/sdc4   2.5G    3.8M    2.4G    1%      /mnt/home 

ext4 改變 bytes-per-inode 確實對分區所占空間影響很大.

安裝基本系統

家里有無線路由,網絡不用配置,已經自動連上了,編輯 /etc/pacman.d/mirrorlist ,把最快的源挪到最上面,一般來說 163 和臺灣的源比較快,163 似乎有時候不穩定,幾個中國大學的源有些是 ipv6 的,用不了,安裝完成后,這個配置文件也會自動拷貝到新系統中,自帶的 vi 真的是比 vim 難用多了,一會兒第一時間換掉.

按照官網說明,用 # pacstrap /mnt base base-devel 安裝基本系統,base-devel 也一并裝上,遲早會用到 AUR 或 ABS,提示共 128 個軟件包,需要下載 158.37M 內容,安裝完成后是 507.09M.

安裝 grub:# arch-chroot /mnt pacman -S grub.

生成 fstab:# genfstab -p -U /mnt >> /mnt/etc/fstab,然后更改 fstab,系統默認一般就比較好了,不優化也行.

使用 relatime 掛載參數

以前是推薦增加 noatime 掛載參數,不記錄文件讀取時間,但這會導致 Mutt 等需要文件讀取時間的軟件出錯,現在改為使用 relatime 參數了,已經默認加上了,Linux 2.6.30 起此參數成為默認值,只有在文件讀取時間早于文件更新時間時,才更新讀取時間數據.

使用 nodiratime 掛載參數,不記錄目錄讀取訪問時間,把 /tmp 放到 tmpfs 上去,沒單獨分區,免了,不再使用 discard 掛載參數,這個參數主要是針對 SSD 硬盤的,對不支持 TRIM 的機械硬盤無效, 對U盤貌似作用不明顯.

不再使用 async 掛載參數,開啟異步讀寫模式,由于只是“看起來”快了,實際數據寫入速度并沒有改善,考慮到穩定性,是否應使用此參數?

不要使用 barrier=0 掛載參數,這個選項似乎在突然斷電、 拔U盤時,有幾率丟失文件或損壞分區,基于我的經歷 + 參考.

由于不會跑什么大應用,為了降低 swap 的使用頻率,修改 /mnt/etc/sysctl.conf:

  1. vm.swappiness = 1 
  2. vm.vfs_cache_pressure = 50 

前一句是盡量不使用 swap,后一句是緩存文件系統信息,下面的操作可以在 chroot 環境下運行:

# arch-chroot /mnt

設置 hostname:echo 'f004' > /etc/hostname

設置時區:# ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

新建 /etc/locale.conf 內容為:

  1. LANG='en_US.UTF-8' 
  2. LC_COLLATE='C' 
  3. LC_MESSAGES='C' 

編輯 /etc/locale.gen,取消 en_US.UTF-8, zh_CN.UTF-8, zh_TW.UTF-8 前面的注釋,然后執行 locale-gen 命令.

更改 root 密碼:passwd root

安裝 Grub 引導系統

仍然在 chroot 環境中操作,編輯 /etc/mkinitcpio.conf,檢查 HOOKS 段,讓 block 參數緊挨著 udev 參數之后(早一點加載),然后 # mkinitcpio -p linux 生成 img 文件,同時加上了 shutdown 參數,作用以后再試,resume 參數就算了,U盤本來就小、慢,支持休眠更痛苦,注:新版本中 block 參數替代了 usb pata sata scsi 等一眾參數.

安裝 grub:

  1. # grub-install --target=i386-pc --recheck --boot-directory=/boot --no-floppy /dev/sdc 
  2. # cp -v /usr/share/grub/{unicode.pf2,ascii.pf2} /boot/grub/ 
  3. # cp -v /usr/share/locale/en@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo 

無論是 32 位還是 64 位系統,都是使用 --target=i386-pc 參數,--no-floppy 是不檢查軟驅,這玩意兒現在應該沒人用了,后兩句不執行也行,還沒弄懂是做什么的,然后,千萬不要忘記 生成 grub.cfg 文件:

  1. # grub-mkconfig -o /boot/grub/grub.cfg 
  2. # grep 'set=root' /boot/grub/grub.cfg 
  3. # blkid /dev/sdc2 

現在的 Grub2 使用 UUID 來找硬盤分區,后兩句就是檢查新生成的 grub.cfg 使用的分區 UUID 和硬盤是否相符,如果忘記生成 grub.cfg 了,可以再次用光盤啟動進去做.

最后,退出 chroot 環境,umount,重啟,啟動U盤可以收起來了.

啟動后,新安裝的U盤變成了 /dev/sdb,此時最好將 mkinitcpio grub-install grub-mkconfig 重新做一遍,否則有可能在下次或另外一臺機器上啟動時,損壞分區表,丟失文件,或許沒有道理,但這是我重復安裝好多次以后的感覺,可能有以下原因:

帶電插拔,可我都是 umount 了啊,不應當這么脆弱,被 USB 3.0 高電流給破壞了,沒拔U盤燒了算我走運? 倒是聽說過 USB 3.0 損壞U盤數據.

/boot 原先沒有單獨分區,這個不應該,是原先使用 GPT 分區在 BIOS 電腦上水土不服?U盤難道就不能用 GPT 分區么?反正換回 MBR 分區后,貌似比較正常了.

初始設置:如果一切正常,現在可以用 root 登錄系統了:

  1. # uname -a 
  2. Linux f004 3.9.9-1-ARCH #1 SMP PREEMPT Wed Jul 3 22:52:05 CET 2013 i686 GNU/Linux 
  3.  
  4. # free -h 
  5.             total   used    free    shared  buffers cached 
  6. Mem:        1.0G    54M     951M    0B      5.6M    27M 
  7. -/+ buffers/cache:  21M     984M 
  8. Swap:       0B      0B      0B 
  9.  
  10. # df -h 
  11. Filesystem      Size    Used    Avail   Use%    Mounted on 
  12. /dev/sdb3       3.9G    764M    3.1G    20%     / 
  13. dev             499M    0       499M    0%      /dev 
  14. run             503M    7.1M    496M    2%      /run 
  15. tmpfs           503M    0       503M    0%      /dev/shm 
  16. tmpfs           503M    0       503M    0%      /sys/fs/cgroup 
  17. tmpfs           503M    0       503M    0%      /tmp 
  18. /dev/sdb4       2.5G    3.8M    2.4G    1%      /home 
  19. /dev/sdb3       96M     39M     58M     41%     /boot 

安裝U盤拿掉后,這個U盤就成為 /dev/sdb 了.

配置有線網絡:沒網絡的時候,可以直接設定ip應急,后面 netctl 才是正規設置:

  1. # ip addr add 192.168.0.100/24 dev enp0s4 
  2. # ip link set dev enp0s4 up 
  3. # ip route add default via 192.168.0.1 
  4. # echo nameserver 208.67.222.222 >> /etc/resolv.conf 

覺得設備名 enp0s4 不習慣,也可以在 udev 中改名(重啟生效):

  1. # cat /etc/udev/rules.d/10-network.rules 
  2. SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="00:50:70:a2:49:7d", NAME="eth0" 

如果使用 dhcd 動態分配地址:

  1. # dhcpcd        # 自動讓 eth0 獲取 IP 
  2. #               # 或者配置成服務自啟動(更加方便) 
  3. # systemctl enable dhcpcd@eth0 
  4. # systemctl start dhcpcd@eth0 

如果使用靜態地址,現在是用 netctl 進行管理:

  1. # pacman -S ifplugd 
  2. # systemctl disable dhcpcd@eth0 
  3. # systemctl stop dhcpcd@eth0    # 要停掉 DHCP,不然有干擾 
  4. # cd /etc/netctl 
  5. # cp examples/ethernet-static home 
  6. # vi home           # 設置我的靜態 IP 設置 profile 
  7. # systemctl enable netctl 
  8. # 重啟一下,清除剛才的臨時 IP 設置 
  9. # netctl start home 
  10. # netctl enable home 

如果要快速切換網絡環境,再在 /etc/netctl/ 下建立一個新的 profile 文件,用 netctl switch-to PROFILE 來進行切換,會自動停掉舊的,更詳細的可以看我以前寫的 netctl 如何選擇 profile.

安裝 vim,默認的 vi 實在是用不慣:

  1. # pacman -S vim 
  2. # pacman -R vi 
  3. # ln -s /usr/bin/vim /usr/bin/vi 

關閉 PC 小喇叭,這個實在是太煩人了,在啟動時就禁用:

  1. # cat /etc/modprobe.d/nopcspkr.conf 
  2. blacklist pcspkr 

這個文件需要自己創建.

安裝 ntp 自動更新時間

  1. # pacman -S ntp libedit 
  2. # systemctl enable ntpd 
  3. # systemctl start ntpd 

另外,Arch 建議在 /etc/ntp.conf 中添加 iburst 參數,比如:

  1. server 0.pool.ntp.org iburst 
  2. server 1.pool.ntp.org iburst 
  3. server 2.pool.ntp.org iburst 
  4. server 3.pool.ntp.org iburst 

檢查 ntpd 同步情況:

  1. # systemctl restart ntpd 
  2. # ntpq -np 

時間同步完成后,用 hwclock -w 寫入硬件時鐘.

創建普通用戶

  1. # useradd -m fwolf 
  2. # passwd fwolf 

通常,這個用戶我們要賦予 sudo 權限:

  1. # pacman -S sudo 
  2. # cat /etc/sudoers.d/fwolf_sudo_conf 
  3. Defaults    env_reset 
  4. Defaults    secure_path="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin" 
  5. fwolf   ALL=(ALL:ALL) ALL 
  6. %admin  ALL=(ALL) ALL 
  7. %sudo   ALL=(ALL:ALL) ALL 
  8. # chmod 0440 /etc/sudoers.d/fwolf_sudo_conf 

注意: /etc/sudoers.d/ 下的文件,名稱帶有 ~ 或者 . 的不會生效,參見 CentOS – 0005017: The #includedir directive in sudoers does not work,文件屬性也必須是 0440.

安裝 Yaourt,在 /etc/pacman.conf 中添加:

  1. [archlinuxfr] 
  2. SigLevel = Never 
  3. Server = http://repo.archlinux.fr/$arch 

然后 pacman -Sy yaourt 完成安裝.

安裝其他常用工具:bash-completion ctags git htop openssh subversion tk

圖形系統:由于U盤要帶著到處跑,所以圖形驅動一定是什么都有,也不追求多么花哨的界面效果,簡潔明快,所以選擇 LXDE+Fluxbox.

字符界面分辨率

默認進入字符界面后,分辨率是最大分辨率,如果要另行指定,可以修改 /etc/default/grub:GRUB_CMDLINE_LINUX_DEFAULT="quiet video-1024x768M@75m"

然后 grub-mkconfig -o /boot/grub/grub.cfg 重新生成 grub 配置文件,默認點亮 Numlock,需要用到兩個命令:系統自帶的 setleds 和 通過 pacman 安裝的 numlockx.

要在字符界面下打開 Numlock,可以在 $HOME/.bashrc 中添加:

  1. # Numlock 
  2. if [ -x /usr/bin/setleds ]; then 
  3.     for tty in /dev/tty{1..6}; do 
  4.         /usr/bin/setleds -D +num < /dev/tty > /dev/null 2>&1 
  5.     done 
  6. fi 

這樣設置會在登錄之后自動打開 Numlock,若要登錄之前就打開,可以參照 Arch Wiki 將上述內容添加到 /etc/rc.local 或者 /etc/inittab,但不如跟著用戶配置容易備份.

要在 X 下打開 Numlock,可以在 $HOME/.xinitrc 中添加:

  1. # Set numlock 
  2. if [ -x /usr/bin/numlockx ]; then 
  3.     /usr/bin/numlockx on 
  4. fi 

安裝 xorg 和顯卡驅動:

Xorg:xorg-server xorg-xinit xorg-server-utils mesa

顯卡驅動:xf86-video-ati xf86-video-intel xf86-video-nouveau nouveau-dri

筆記本觸摸板支持:xf86-input-synaptics

測試 X 工作是否正常:xorg-twm xorg-xclock xterm

現在可以用 startx 啟動 X 看到簡陋的圖形界面了,如果想用 Ctrl+Alt+Backspace 關閉 X,需要在 /etc/X11/xorg.conf.d/10-evdev.conf 中增加一段:

  1. Section "InputClass" 
  2.     Identifier "Keyboard Defaults" 
  3.     MatchIsKeyboard "yes" 
  4.     Option "XkbOptions" "terminate:ctrl_alt_bksp" 
  5. EndSection 

安裝 LXDE & Fluxbox

LXDE 組的所有包,Fluxbox,監測文件系統變化的 Gamin,常用軟件:leafpad obconf epdfview

配置一個簡單的 $HOME/.xinitrc ,從 /etc/skel/.xinitrc 復制一份,然后添加:

  1. #xrandr -s 1024x768 # 如果需要的話,提前指定分辨率 
  2. exec startlxde 

現在都是液晶的天下,很少出現分辨率刷新率超出界限不顯示的情況,命令行下的分辨率可以用自動,嫌字小上面有修改 grub 設置的方法,圖形下 LXDE 也支持 auto 分辨率,一般也都自動設置好了.

為了把 Openbox 換成 Fluxbox,需要修改 /etc/xdg/lxsession/LXDE/desktop.conf:

  1. [Session] 
  2. window_manager=fluxbox 

中文相關

基本字體 ttf-dejavu artwiz-fonts wqy-microhei

輸入法 fcitx-im fcitx-configtool fcitx-fbterm,在 $HOME/.xinitrc 里添加:

  1. export GTK_IM_MODULE=fcitx 
  2. export QT_IM_MODULE=fcitx 
  3. export XMODIFIERS="@im=fcitx" 

字體配置,把原先用的其他常用字體和配置文件都搬過來了,就是 $HOME/.fonts 目錄,Ubuntu 下用的很好,這里也可以直接用,把 $HOME/.fonts/fonts.conf 鏈接為 /etc/fonts/local.conf 即生效,然后修改 /etc/fonts/conf.avail 下的 40-nonlatin.conf 和 60-latin.conf 將 SimSun 或者其他你喜歡的字體設置為首選字體,最后 $ fc-cache -vf 更新下字體緩存,重啟 X 就可以了.

至此,一個基本的、具備圖形界面的 Arch Linux 就安裝完成了,pacman -Scc 清理一下,已安裝程序占用空間約 1.4G,總體感覺,運行速度受U盤讀寫速度影響非常大,有時候會卡.

……大約反復兩周后,經歷了無數次的重裝,我終于下了結論:U盤上的 Linux 系統除非只以只讀方式使用,否則幾乎沒有可用性,大概是因為重啟、關機時,umount 總是等不及U盤的燈閃來閃去,就強制重啟或關機了,然后文件系統未正常 umount,然后就是文件系統損壞,一修復都是文件丟失,損壞的 inode,難道是因為我的U盤質量不好么?不管怎樣,拿這個做隨身系統的想法破滅了,還是磁介質的機械硬盤靠譜一點.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新巴尔虎左旗| 红河县| 东城区| 东辽县| 长岭县| 文山县| 大荔县| 文化| 太仆寺旗| 调兵山市| 宁阳县| 乳山市| 浑源县| 石家庄市| 伊宁市| 弋阳县| 汪清县| 阳泉市| 南召县| 南汇区| 育儿| 乌兰察布市| 金山区| 卢氏县| 察隅县| 积石山| 红桥区| 东乌珠穆沁旗| 广水市| 高唐县| 鹰潭市| 娄底市| 滕州市| 桐乡市| 扎囊县| 西乌珠穆沁旗| 察雅县| 米易县| 罗田县| 安化县| 成武县|