您好,登錄后才能下訂單哦!
這篇文章主要介紹“怎么把Arch Linux安裝到U盤上”,在日常操作中,相信很多人在怎么把Arch Linux安裝到U盤上問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么把Arch Linux安裝到U盤上”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
Arch Linux簡介
Arch Linux(或稱Arch)是一種以輕量簡潔為設計理念的Linux發行版。其開發團隊秉承簡潔、優雅、正確和代碼最小化的設計宗旨。Arch Linux 項目受 CRUX 啟發,由 Judd Vinet 于2002年啟動。
Arch Linux是起源于加拿大的一份致力于使用簡單、系統輕量、軟件更新速度快的GNU/Linux發行版。創始人Judd Vinet出于對Debian以及Red Hat的包管理器不滿,以及受CRUX影響而創立。最初針對i686,但是如今對x86_64也支持良好,而且還派生出了針對ARM平臺的Arch Linux ARM以及針對HURD內核的Arch Hurd(發展緩慢)。
Arch Linux 將簡潔定義為:避免任何不必要的添加、修改和復雜增加。它提供的軟件都來自原始開發者((上游),僅進行和發行版(下游)相關的最小修改。
不包含上游不愿意接受的補丁。絕大部分 Arch 下游補丁都已經被上游接受,下一個正式版本里會包含。
配置文件也是來自上游,僅包含發行版必須的調整,比如特殊的文件系統路徑變動。Arch 不會在安裝一個軟件包后就自動啟動服務。
軟件包通常都和一個上游項目直接對應。僅在極少數情況下才會拆分軟件包。
Arch盡全力保持軟件處于最新的穩定版本,只要不出現系統軟件包破損,都盡量用最新版本。Arch采用滾動升級策略,安裝之后可以持續升級,無需重裝。只敲一個命令,Arch就可以保持最新。
Arch向GNU/Linux用戶提供了許多新特性,包括systemd初始化系統、現代的文件系統(Ext2/3/4、Reiser、XFS、JFS、BTRFS)、LVM2/EVMS、軟件磁盤陣列(軟RAID)、udev支持、initcpio(附帶mkinitcpio)以及最新的內核。
基本系統安裝
本想使用 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。
代碼如下:
# fdisk /dev/sdb
Disk /dev/sdc: 8022 MB, 8022982656 bytes, 15669888 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sdb1 2048 1804287 901120 7 HPFS/NTFS/exFAT
/dev/sdb2 * 1804288 2009087 102400 83 Linux
/dev/sdb3 2009088 10405887 4198400 83 Linux
/dev/sdb4 10405888 15669887 2632000 83 Linux
第一個分區先用 ntfs,當正常U盤使用, 如果以后需要用到 ESP 分區,直接用這個分區轉,或者切一部分空間過去。 第二個分區 100M,掛 /boot; 第三個分區 4G,作為 ArchLinux 根分區; 第四個分區 2.5G,作為 $HOME ;
格式化分區:
如果使用 xfs 分區格式:
代碼如下:
# mkfs.ntfs -f /dev/sdc1 -L f004-c
# mkfs.xfs -n size=64k -l lazy-count=1 /dev/sdc2 -L f004-boot
# mkfs.xfs -n size=64k -l size=128m,lazy-count=1 /dev/sdc3 -L f004-a
# 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 分區格式:
代碼如下:
# mkfs.ntfs -f /dev/sdc1 -L f004-c
# mkfs.ext4 -b 4096 -m 0 -i 16384 -O '^has_journal' /dev/sdc2 -L f004-boot
# mkfs.ext4 -b 4096 -m 1 -i 16384 -O '^has_journal' /dev/sdc3 -L f004-a
# 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盤上讀寫速度快一些。
掛載分區:
代碼如下:
# mount /dev/sdc3 /mnt
# mkdir /mnt/boot
# mount /dev/sdc2 /mnt/boot
# mkdir /mnt/home
# mount /dev/sdc4 /mnt/home
df -h 檢查一下:
代碼如下:
# xfs
Filesystem Size Used Avail Use% Mounted on
/dev/sdc3 3.9G 33M 3.9G 1% /mnt
/dev/sdc2 82M 5.2M 77M 7% /mnt
/dev/sdc4 2.4G 33M 2.4G 2% /mnt/home
# ext4
Filesystem Size Used Avail Use% Mounted on
/dev/sdc3 3.9G 8.1M 3.8G 1% /mnt
/dev/sdc2 96M 48K 96M 1% /mnt
/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 :
代碼如下:
vm.swappiness = 1
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 內容為:
代碼如下:
LANG='en_US.UTF-8'
LC_COLLATE='C'
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:
代碼如下:
# grub-install --target=i386-pc --recheck --boot-directory=/boot --no-floppy /dev/sdc
# cp -v /usr/share/grub/{unicode.pf2,ascii.pf2} /boot/grub/
# 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 文件 :
代碼如下:
# grub-mkconfig -o /boot/grub/grub.cfg
# grep 'set=root' /boot/grub/grub.cfg
# 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 分區后,貌似比較正常了。
到此,關于“怎么把Arch Linux安裝到U盤上”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。