Arch Linux 安装、配置、美化和优化
国庆假期玩了下Arch Linux,发现这货跟Ubuntu之流相差甚远,甚难调教,而且安裝过程全命令行,会有各种问题,各种知识。。。
--- 安装引导器
--- ---------------------------
GRUB
BIOS:
# pacman -S grub os-prober
# grub-install --recheck /dev/<目标磁盘>
# grub-mkconfig -o /boot/grub/grub.cfgUEFI:---如果BIOS是UEFI的,就要用下面的命令安装grub了
# pacman -S dosfstools grub efibootmgr
# grub-install --target=x86_64-efi --efi-directory=<EFI 分区挂载点> --bootloader-id=arch_grub --recheck
# grub-mkconfig -o /boot/grub/grub.cfg
+++ 分区
+++ +++++++++++++++++
在本节,用户须在 MBR 和 GPT 之间做出选择。通常建议在 UEFI 系统中使用 GPT,在 BIOS 系统中使用 MBR。注意部分 UEFI 系统不支持 MBR 引导,部分 BIOS 系统不支持 GPT 引导。
---
--- 分区方案
--- ---------------------------
基本要求:至少一个分区(类型代码:8300)
特殊要求:
BIOS + GPT + Grub:BIOS 引导分区(类型代码:ef02;大小 ≥ 1 MiB)
UEFI:UEFI 系统分区(类型代码:ef00;大小 ≥ 256 MiB)
系统休眠:交换分区(类型代码:8200;大小 ≥ 2×内存大小)
一般建议:
若安装目标内存 ≤ 2GB,添加一个交换分区
为 /home 分配一个分区
一个例子:
$ lsblk /dev/sda -o NAME,FSTYPE,SIZE,MOUNTPOINT # 名称,文件系统,大小,挂载点
NAME FSTYPE SIZE MOUNTPOINT
sda 120G
├─sda1 vfat 512M /boot/EFI
├─sda2 ext4 36G /
├─sda3 ext4 79.5G home
└─sda4 swap 4G [SWAP]---
--- 分区
--- ---------------------------
确定目标磁盘及目标分区:# lsblk
分区用软件:
通用:parted、cfdisk、sfdisk
仅 GPT:cgdisk、sgdisk
- 仅MBR:fdisk
具体用法:
1.利用 fdisk 创建 MBR 分区:
$ fdisk /dev/sda
2.利用 cgdisk 创建 GPT 分区:
$ cgdisk /dev/sda
3.利用 parted创建 GPT 分区:
parted是一个可以分区并进行分区调整的工具,他可以创建,破坏,移动,复制,调整ext2 linux-swap fat fat32 reiserfs类型的分区,可以创建,调整,移动Macintosh的HFS分区,检测jfs,ntfs,ufs,xfs分区。
使用方法:parted [options] [device [command [options...]...]]
options
-h 显示帮助信息
-l 显示所有块设备上的分区
device
对哪个块设备进行操作,如果没有指定则使用第一个块设备
command [options...]
check partition
对分区做一个简单的检测
cp [source-device] source dest
复制source-device设备上的source分区到当前设备的dest分区
mklabel label-type
创建新分区表类型,label-type可以是:"bsd", "dvh", "gpt", "loop","mac", "msdos", "pc98", or "sun" 一般的pc机都是msdos格式,如果分区大于2T则需要选用gpt格式的分区表。
mkfs partition fs-type
在partition分区上创建一个fs-type文件系统,fs-type可以是:"fat16", "fat32", "ext2", "linux-swap","reiserfs" 注意不支持ext3格式的文件系统,只能先分区然后用专有命令进行格式化。
mkpart part-type [fs-type] start end
创建一个part-type类型的分区,part-type可以是:"primary", "logical", or "extended" 如果指定fs-type则在创建分区的同时进行格式化。start和end指的是分区的起始位置,单位默认是M。
linux大于2T的磁盘使用GPT分区方式 - 吾心 - 51CTO技术博客
http://leeforget.blog.51cto.com/6950397/1375908
使用parted划分GPT分区 - 好脑袋和烂笔头 - 开源中国社区
https://my.oschina.net/guol/blog/61424
分区工具比较多,推荐 parted
或者 cfdisk
,后者有个类似图形化一样的界面很方便。我用的是 parted
,表问我为什么,逼格高=。=
parted /dev/sda
(parted) mklabel msdos
(parted) mkpart primary ext4 1M 500M
(parted) set 1 boot on
(parted) mkpart primary ext4 500M 50G
(parted) mkpart primary linux-swap 50G 54G
(parted) mkpart primary ext4 54G 100%
|
解释一下,先说一下 parted
的基本用法
(parted) mkpart part-type fs-type start end
|
进入 parted
交互界面后使用 mkpart
创建,后面跟上 4 个参数,分别是 分区类型、文件系统类型、起始点、结束点,分区类型就主分区还是逻辑分区,起始结束点使用 MB、GB 方便计算你懂的。
使用 parted
对 /dev/sda
设备进行分区,分区表 为 MS-DOS
即 MBR
分区结构。共分了4个区,个人习惯~
挂载点 大小 说明
------------------------------------------------------------------
/boot 1-500M 用于挂载 /boot 分区,设置为 Bootable。
/ 500M-50G 用于挂载 / 分区
swap 50G-54G 用于交换分区(Swap)
/home 54G-100% 剩余空间用于挂载 /home分区
|
分完区后进行格式化
mkfs.ext4 /dev/sda1
mkfs.ext4 /dev/sda2
mkfs.ext4 /dev/sda4
mkswap /dev/sda3
|
挂载分区
mount /dev/sda2 /mnt
mkdir /mnt/{boot,home}
mount /dev/sda1 /mnt/boot
mount /dev/sda4 /mnt/home
swapon /dev/sda3
|
分区方案:
类型 大小 类型代码
/dev/sda1 EFI 系统分区 512M ef00
/dev/sda2 Linux ext4 任意 8300
/dev/sda3 Linux 交换分区 适量 8200
4.利用 cfdisk创建 GPT 分区:
cfdisk有一个终端图形界面,本质和parted一样,详细用法如下:
CentOS分区cfdisk
http://blog.csdn.net/zhoutong12589/article/details/8210405
安装并配置 bootloader
我的主板是BIOS主板,这里采用的 bootloader 是Grub;安装 grub 包,并执行 grub-install 已安装到 MBR:
# pacman -S grub
# grub-install --target=i386-pc --recheck /dev/sdb
注意:须根据实际分区自行调整 /dev/sdb, 切勿在块设备后附加数字,比如 /dev/sdb1 就不对。
由于我的硬盘上还有另外一个操作系统windows 7,为了检测到该系统并写到grub启动项中,还需要做下面的操作。
# pacman -S os-prober
# grub-mkconfig -o /boot/grub/grub.cfg
卸载分区并重启系统
离开 chroot 环境并重启操作系统
# exit
# reboot
安装图形界面
桌面环境我用的是XFCE4,在安装之前需要装几个其它的东西。
安装xorg-server
# pacman -S xorg-server xorg-server-utils xorg-xinit
安装显卡驱动
我的笔记本是Intel的集成显卡和英伟达的独立显卡,这地方没弄清楚怎么回事,就安装了两个驱动;这里有一些相关描述:https://wiki.archlinux.org/index.php/NVIDIA_(简体中文)
# pacman -S xf86-video-intel
# pacman -S xf86-video-nouveau
安装LXDM
LXDM是个桌面管理器,用来登录系统及启动XFCE桌面。
# pacman -S lxdm
# systemctl enable lxdm.service
安装XFCE4
# pacman -S xfce4
经过以上步骤,可以通过下面的命令来启动XFCE4了:
startxfce4
设置 root 用户密码
passwd root
添加用户
虽然你也可以直接用 root 用户,但是毕竟不安全,貌似有些软件还不能直接用 root ?
useradd -m -g users -G wheel -s /bin/bash ikke
passwd ikke
安装 sudo
要使用 sudo 命令提权的话需要安装 sudo 并且做相应配置
pacman -S sudo
打开 /etc/sudoers 文件,找到 root ALL=(ALL) ALL 并依葫芦画瓢添加 ikke ALL=(ALL) ALL 即可。
安装 bootloader
一般都是用 grub。
pacman -S grub
grub-install /dev/sda
由于我的硬盘上还有另外一个操作系统windows 7,为了检测到该系统并写到grub启动项中,还需要做下面的操作。
# pacman -S os-prober
# grub-mkconfig -o /boot/grub/grub.cfg
无线网设置
无线的话注意了,需要安装几个包不然无法使用。
pacman -S wpa_supplicant dialog
图形界面安装
下面开始安装图形界面
Xorg
首先是装Xorg
pacman -S xorg-server xorg-xinit
触摸板驱动
pacman -S xf86-input-synaptics
显卡驱动
下面安装显卡驱动
intel
pacman -S xf86-video-intel
英伟达
pacman -S xf86-video-nv
ATi
pacman -S xf86-video-ati
我这里是双显卡,我只安装了intel的驱动
这个时候startx是不能进入x界面的,不过不用担心,请继续看后续教程。
GNOME桌面
gnome桌面只要安装gnome包即可,还有一个gnome-extra包可以提供额外的常用软件和几个游戏,你可以安装时选择你要的软件,没有必要全选,当然也可以不装这个包,我这里只选了gnome-tweak-tool这个工具
pacman -S gnome gnome-extra
然后安装gdm登录管理器
pacman -S gnome gdm
将gdm设置为开机自启动,这样开机时会自动载入桌面
systemctl enable gdm
Deepin 桌面
--- 说明,据说Deepin桌面和Gnome不兼容,安装Deepin就要卸载Gnome,以及重新配置网络等
KDE5桌面
安装plasma5
基础包
pacman -S plasma
完整包
pacman -S plasma-meta
最简安装(仅有桌面软件)
pacman -S plasma-desktop
然后是登录管理器SDDM
pacman -S sddm
将SDDM设置为开机自启动
systemctl enable sddm
XFCE4桌面
安装LXDM
LXDM是个桌面管理器,用来登录系统及启动XFCE桌面。
# pacman -S lxdm
# systemctl enable lxdm.service
安装XFCE4
# pacman -S xfce4
经过以上步骤,可以通过下面的命令来启动XFCE4了:
startxfce4
LXDE桌面
安装LXDM管理器和LXDE桌面:
# pacman -S lxdm lxde
设置lxdm开机启动:
# systemctl enable lxdm
startx 启动图形界面
如果你不想开机自动进入桌面,可以使用startx启动桌面,如果要使用startx,就不用安装登录管理器。
pacman -S xorg-xinit
对你的startx配置文件进行设置
nano /etc/X11/xinit/xinitrc
文件最后有这样一段,删掉或者注释掉这些内容
twm &
xclock -geometry 50x50-1+1 &
xterm -geometry 80x50+494+51 &
xterm -geometry 80x20+494-0 &
exec xterm -geometry 80x66+0+0 -name login
如果你使用的是gnome桌面,在最后添加
exec gnome-session
如果是kde5,则添加
exec startkde
然后保存文件,这时候,你已经可以使用startx来进入桌面了。
如果想要每个用户进入不同的桌面,你可以以用户身份登录,为用户复制一份单独的配置文件
cp /etc/X11/xinit/xinitrc ~/.xinitrc
然后编辑~/.xinitrc
即可
创建新用户
useradd -m -G wheel -s /bin/bash 用户名
用户密码
passwd 用户名
安装sudo
为安全期间,我们可以用sudo来使用root权限
pacman -S sudo
将用户加入sudo组
在/etc/sudoers
加入这个:
用户名 ALL=(ALL) ALL
也可以去掉#%wheel ALL=(ALL) ALL
这一行前面的#
中文字体
你需要中文字体才能使用gnome-terminal
pacman -S wqy-microhei
现在你已经可以使用你的系统了,输入reboot
重启后系统即可自动进入gdm界面,然后进入桌面
安装常用字体:
# pacman -S ttf-dejavu wqy-zenhei wqy-microhei
后续优化
yaourt
Yaourt是archlinux方便使用的关键部件之一,但没有被整合到系统安装中的工具。建议在装完系统重启之后,更新完pacman和基本系统之后,就安装这个工具。
最简单安装Yaourt的方式是添加Yaourt源至您的 /etc/pacman.conf,在文件最后加入:
[archlinuxcn]
#The Chinese Arch Linux communities packages.
SigLevel = Optional TrustAll
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch
然后
pacman -Syu yaourt
中文输入法
这里安装ibus作为中文输入法
sudo pacman -S ibus
sudo pacman -S ibus-pinyin
在~/.bashrc里面加入
export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus
然后在设置里启用输入法
你也可以安装fcitx:
sudo pacman -S fcitx-im fcitx-configtool
同样的,在~/.bashrc写入
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=“@im=fcitx”
然后执行
gsettings set \
org.gnome.settings-daemon.plugins.xsettings overrides \
"{'Gtk/IMModule':<'fcitx'>}"
安装搜狗输入法
yaourt -S fcitx-sogoupinyin
然后进入fcitx设置进行配置即可
chrome
前面已经安装了yaourt,这里只要
yaourt -S google-chrome
解压软件
需要图形化的解压软件可以这样:
sudo pacman -S p7zip file-roller unrar
文件系统支持
要支持制作fat文件系统,安装dosfstools,默认内核只能读取ntfs,要支持ntfs读写,安装ntfs-3g。
sudo pacman -S ntfs-3g dosfstools
无线AP
需要安装create-ap才能使用gnome3设置里的创建热点选项
sudo pacman -S create_ap
###
美化
此处仅为gnome美化
这里先展示一下美化后的样子
gnome-tweak-tool
如果你安装了gnome-extra,那么这个工具已经被安装了,否则的话
sudo pacman -S gnome-tweak-tool
图标包
这里我使用的numix-circle图标包,这个图标包在aur里,直接用yaourt即可
yaourt -S numix-circle-icon-theme-git
然后在gnome-tweak-tool里启用主题
gtk主题
gtk主题我选择了arc主题
yaourt -S gtk-theme-arc-git
然后在gnome-tweak-tool里启用
gnome-shell主题
首先在gnome-tweak-tool里的拓展
里启用User themes
然后安装主题,这里我是用的贴吧的@Air_Wawei的Air主题,并自己做了些修改。
首先下载主题 然后解压,将Air文件夹放到/usr/share/themes/
文件夹里,在gnome-tweak-tool里启用主题
gdm背景
输入以下指令
curl -L -O http://archibold.io/sh/archibold
chmod +x archibold
./archibold login-backgroung 你的背景的地址
重启后gdm就会变成你要的背景
gnome-shell拓展
shell拓展请进入https://extensions.gnome.org/自行按照说明安装
screenfetch
screenfetch可以在终端里输出你的系统logo和状态。
可以用pacman安装:
pacman -S screenfetch
要让screenfetch在打开终端是自动输出,在~/.bashrc里加入
screenfetch
dock
要获得像苹果osx一样的dock可以用docky或者dash-to-dock
docky的话sudo pacman -S docky
即可,docky不支持wayland。
dash-to-dock是gnome拓展,请在https://extensions.gnome.org/自行按照说明安装
我这里装了docky,这是我的docky配置
一些优化
SATA 启用 AHCI 模式
SATA 有两种工作模式:原生的 AHCI 模式提供更好的性能(如热插拔和 NCQ 支持)、模拟的 IDE 模式提供更好的兼容性。一般主板出厂默认将 SATA 模式设置为 IDE 模式,但如今先进的 Linux 和 Windows 都早已原生支持 AHCI,所以我们最好打开 AHCI 模式以优化性能。
Arch Linux 在安装好以后,内核镜像默认没有载入 AHCI 驱动模块。修改 /etc/mkinitcpio.conf
,添加ahci
到 MODULES
变量:
MODULES="ahci"
然后重建内核镜像,重新启动后 AHCI 驱动就会加载:
$ mkinitcpio -p linux
在主板 UEFI 或 BIOS 中,将 SATA 模式从 IDE
(或 PATA Emulation
等等),设置为 AHCI
(或 Native
等等)。需要注意的是,如果你还在用 Windows XP,它需要安装 AHCI 驱动才行。Windows Vista 及以后的版本则不需要担心这个问题(但如果你是在 Windows 安装完成后才启用 AHCI 模式,因为安装期间 Windows 会自动禁用未使用的存储驱动程序,你需要参考 KB922976(Windows Vista/7)或KB2751461(Windows 8)来启用 AHCI 驱动程序)。
设置好以后,你可以从 dmesg
命令的输出里,找到 AHCI 和 NCQ 成功启用的证据:
$ dmesg
...
SCSI subsystem initialized
libata version 3.00 loaded.
ahci 0000:00:1f.2: version 3.0
ahci 0000:00:1f.2: irq 24 for MSI/MSI-X
ahci 0000:00:1f.2: AHCI 0001.0300 32 slots 6 ports 6 Gbps 0x10 impl SATA mode
ahci 0000:00:1f.2: flags: 64bit ncq led clo pio slum part ems apst
scsi host0: ahci
scsi host1: ahci
scsi host2: ahci
scsi host3: ahci
scsi host4: ahci
scsi host5: ahci
...
ata5.00: 976773168 sectors, multi 16: LBA48 NCQ (depth 31/32), AA
...
优化系统启动速度
Arch Linux 的 systemd-analyze
是个很不错的工具,利用它你可以很直观地观察到系统启动的时间都花到哪儿去了:
$ systemd-analyze
Startup finished in 6.857s (firmware) + 3.157s (loader) + 1.870s (kernel) + 8.157s (userspace) = 20.044s
我注意到打开 AHCI 后,内核和用户空间的载入速度明显提高了,总启动时间从约 30 秒缩短到 20 秒,效果非常明显。
用下面这个命令,可以了解到是什么东西启动最慢:
$ systemd-analyze blame
此外,还可以把启动过程绘制成 SVG 图表供你审阅(用 GNOME 的图片预览或 Chrome 浏览器都可以打开),这个图表中你还可以观察到是否有启动慢的组件影响到了依赖它的组件的启动:
$ systemd-analyze plot > plot.svg
Arch Linux 安装指南[2016.01] / 安装问题 / Arch Linux 中文论坛
https://bbs.archlinuxcn.org/viewtopic.php?id=1037
ArchLinux 安装笔记 | 雾里看花
https://blog.ikke.moe/posts/archlinux-installation-notes/
General recommendations (简体中文) - ArchWiki
https://wiki.archlinux.org/index.php/General_recommendations_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)
Main page (简体中文) - ArchWiki
https://wiki.archlinux.org/index.php/Main_page_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)
Zsh (简体中文) - ArchWiki
https://wiki.archlinux.org/index.php/Zsh_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)
---zsh 就是传说中超级强大,要用来替代Bash shell的存在
Arch Linux 安装、配置、美化和优化的更多相关文章
- Arch Linux + KDE 配置&美化(持续更新~)
Arch Linux + KDE 配置&美化(持续更新~) 这篇文章着重记录archlinux + KDE的一个基本的配置过程.不包括安装过程(使用archInstall.sh).内容大概有以 ...
- Arch Linux安装配置-双系统(1)
Arch Linux启动盘准备: 在Windows下安装Win32 Disk Imager,打开页面,点击Download即可! 安装配置 1.选择我同意 2.选择安装位置路径 3.打勾,在桌面显示图 ...
- Arch Linux 安装记录
Arch Linux 安装记录 基本上参考wiki上的新手指南,使用arch 2014.6.1 iso安装 设置网络 有线网络 Arch Linux 默认开启DHCP. 静态ip 首先关闭DHCP:s ...
- Arch LInux安装dde(Deepin Desktop Environment 深度桌面环境)
我一直比较推荐一些Linux新手使用Deepin Linux,因为我认为这种尽量的follow Windows的系统至少对于新手来说是比较的友好的,而且预装了QQ 火狐浏览器中文版,甚至还移植了像36 ...
- Arch Linux 安装简明流程
Arch Linux 安装简明流程 这是一篇为 GPT/EFI 引导 的电脑安装 Arch Linux(双系统)的中文简明流程,尽可能省略了可以省略的流程与文字以使得篇幅尽量短小,基本上基于 Arch ...
- Linux安装配置php环境的方法
本文实例讲述了Linux安装配置php环境的方法.分享给大家供大家参考,具体如下: 1.获取安装文件: http://www.php.net/downloads.php php-5.3.8.tar.g ...
- linux经常使用(一)linux 安装配置 jdk之 找不到安装文件文件夹及source /etc/profile 报unexpected end of file 错误 解决
linux 安装配置 jdk 应该算是一个非常主要的东西.可是我到如今才自己第一次 正式安装.果然出现了问题.. 问题就是 安装之后 找不到 安装路径 ,进而没法配置环境变量. 现象例如以下: 提示 ...
- Linux安装配置apache
Linux安装配置apache 1.获取软件: http://httpd.apache.org/ httpd-2.2.21.tar.gz 2.安装步骤: 解压源文件: 1 tar zvxf ht ...
- Arch Linux 是个 针对 i686 优化的 Linux 发行版(通过可以轻松使用的二进制包系统 - pacman)
Arch Linux 是个 针对 i686 优化的 Linux 发行版(通过可以轻松使用的二进制包系统 - pacman)Arch 同时也拥有一个类似 ports 的包构建系统(Arch Build ...
- Arch Linux 安装rust
Arch Linux 安装rust 0. 参考 Rust Toolchain 反向代理使用帮助 1. 安装 安装rustup和toolchain yaourt -S rustup rustup ins ...
随机推荐
- InputStream,String相互转化
String --> InputStream InputStream String2InputStream(String str){ ByteArrayInputStream stream = ...
- django缓存
由于Django是动态网站,所有每次请求均会去数据进行相应的操作,当程序访问量大时,耗时必然会更加明显,最简单解决方式是使用:缓存,缓存将一个某个views的返回值保存至内存或者memcache中,5 ...
- 解决Python往MySQL插入中文时报错的问题
今天遇到一个问题,用Python往MySQL插入数据时,若数据中包含中文会报类似下面的错误: ERROR 1366: Incorrect string value: '\xE4\xB8\xAD\xE5 ...
- js手机网页跳转
在网页头部加入如下代码: <script type="text/javascript"> function browserRedirect() { var sUserA ...
- 【架构】MQTT/XMPP/GCM 等参考资料
https://www.zhihu.com/question/29138530 https://segmentfault.com/q/1010000002598843/a-10200000026014 ...
- [转]JVM内存堆布局图解分析
JAVA能够实现跨平台的一个根本原因,是定义了class文件的格式标准,凡是实现该标准的JVM都能够加载并解释该class文件,据此也可以知道,为啥Java语言的执行速度比C/C++语言执行的速度要慢 ...
- poj 1125 (floyd)
http://poj.org/problem?id=1125. 题意:在经纪人的圈子里,他们各自都有自己的消息来源,并且也只相信自己的消息来源,他们之间的信息传输也需要一定的时间.现在有一个消息需要传 ...
- Light OJ 1068
数位DP #include <cstdio> #include <cstring> using namespace std; ; ; long long n; int f[MA ...
- Bestcoder13 1003.Find Sequence(hdu 5064) 解题报告
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5064 题目意思:给出n个数:a1, a2, ..., an,然后需要从中找出一个最长的序列 b1, b ...
- IOS - SDWebImage 非ARC 问题
非arc项目中使用SDWebImage类库 1.添加类库引用 (1)ImageIO.framework (2)MapKit.framework 2.在targets->build P ...