安装ArchLinux笔记

前几天装spmjs,一个命令不小心敲错,导致/usr下面的权限全乱掉了…sudo都没权限了,虽然抢救过来了,但是各种小问题,想想还是重灌一下吧…

之前一直是用的Ubuntu,在移动硬盘里不是很好用,默认就占了300~500MB左右的内存,如果机子较差还容易界面未响应,所以想着就换成Arch看看吧…

因为现在的Arch没有了安装向导,都要自己打命令,所以想省力,找了个ArchBang安装…

试用ArchBang

ArchBang是一套Arch+Openbox+slim+spacefm的开盒即用的发行版,基于Arch主干,就是说安装完基本和Arch是一样的。

说是有安装向导,看样子也只是把Arch之前的向导拿来用了下…

因为Archbang只有英文西班牙语的向导,所以大家用E文向导吧,安装过程大概就是选择向导的语言->分区->安装系统->配置系统。具体我就不表了,满大街的货,懂点E文的随便来两下就行了…

不过安装时遇到两个问题

locale-gen时老是提示locale.alias找不到

运行ln -s /usr/share/X11/locale/locale.alias /usr/share/locale/locale.alias创建个符号链接解决

注意在arch-chroot到安装的目录下执行

locale-gen后系统不会变为相应的语言

我是默认安装的,即安装的英文系统,之后进入系统后才想改语言,于是改了local.conflocale-gen,运行sudo locale-gen完全没用,虽然系统语言是变成中文了,但是各个软件还是以英文来显示

这个问题,找了半天没找到解决方案,只是发现如果重装某应用,它就会变成中文的…

吧友@yjw1993425提供了个命令来重装所有包,不过我没去试罢了

1
pacman -S `pacman -Qsq`

根据吧友@wwacdroot说法是因为我默认安装的是E文系统,没有相关.mo语言文件,重装了一下的话,就又都下好了。

不过我严重怀疑是ArchBang的安装脚本有问题,安装很快的感觉,完全不像是去网上的源下载东西的感觉…

安装Arch

因为安装ArchBang的出现的问题,作为一个不折腾不会死的骚年,我趁着还是刚装完没放资料,又删掉了ArchBang,从头安装了Arch…

安装Arch

教程参考Wiki( 最好的教程 )

安装yaourt

https://wiki.archlinux.org/index.php/Yaourt_(简体中文)

安装桌面环境。

我推荐先以root用户安装桌面环境再adduser添加其它用户

这样说的原因是:如果root没配置好界面,sudo一些GUI的时候很丑的…

SLiM">登陆器:SLiM

和systemctl不太兼容,二次登陆有问题
介意的同学,LightDM也不错的选择

Openbox">桌面:Openbox

feh">桌面背景:feh

如果要图片撑满又不变形用参数--bg-fill

tint2-svn">任务栏:tint2-svn

svn编译的版本功能更强大一些,所以应该安装tint2-svn

VolumeIcon">音量图标:VolumeIcon

这个只是单纯的图标,如果要高级控制,安装Alsamixer

NetworkManager_&&_network-manager-applet">网络管理器:NetworkManager && network-manager-applet

netctl已经代替了netcfg,所以这货已经日子不长了

介意的同学选用netctlcinnamon-applet-netctl-systray-menu

安装之后需停用netctldhcpcd,不然不能上网

1
2
3
4
sudo systemctl stop netctl
sudo systemctl disable netctl
sudo systemctl stop dhcpcd
sudo systemctl disable netctl

Thunar">文件管理器:Thunar

压缩文件查看器:file-roller

终端:lxterminal

也可以装xterm,默认很多程序在用它

fcitx">输入法:fcitx

conky">系统监视器:conky

conky的设置比较开放,安装个conky-colors,能省不少力气
使用CONKY-colors配置和汉化conky完全教程

Numix">主题:Numix

源里就有

添加用户

1
2
3
4
useradd -m -g users -G audio,lp,optical,storage,video,wheel,games,power,scanner -s /bin/bash username

#添加密码
passwd username

编辑sudo配置,让wheel组能执行sudo

1
2
# /etc/visudo
%wheel    ALL=(ALL) ALL

切换到新建用户

1
su username

问题

重启不能顺利加载系统

有可能我是安装到了移动硬盘的缘故

现在的Grub都是按照UUID找分区的,但是我发现Arch的Grub似乎不是很正常。

比如我的移动硬盘状况是

1
2
3
4
5
/dev/sdc
  ├/dev/sdc1(/)
  ├/dev/sdc2(/home)
  ├/dev/sdc3(/swap)
  └/dev/sdc4(ntfs)

我安装grub/dev/sdc上面,然后mkconfig生成相应的grub.cfg

但是内容却是有问题的,基本上有下面几个

  • root不对
    比如root=(hd2,msdos1),看着也不对,还得手动改成root=(hd1,msdos5)

    根据实际情况改

  • uuid不对
    比如uuid=32id···,而我的sdc1是`17d····,手动改正

USB3.0上不能找到系统分区

我在一台老PC上用USB2.0口安装了Arch,回家后发现插USB3.0口,找不到分区,USB2.0却又是正常的

因为Grub是正常启动的,看来是initramfs的问题了,遂Google了一番。

下面是解决方法:

在有USB3.0的机子上再运行一次mkinitcpio -p linux重新生成镜像。

还不行修改/etc/mkinitcpio.conf文件的HOOKS,在block后面添加usb钩子。

原因未知,照理block已经取代了usb等钩子,不应该在这样了的说…

也有个说法是将block钩子放到udev后面,让它更先运行(不过我懒,没去试)

推荐在用USB3.0口启动后再一次生成一下镜像。

这个解决方法另外附带的变化是启动时硬盘顺序变正常了,原先移动硬盘一直挂载为第一个硬盘即sda,现在根据PC硬盘数量不同,能自动识别为sdb/sdc等了。

内置硬盘不能自动挂载

参考:http://blog.chinaunix.net/uid-25906175-id-3030600.html

修改/usr/share/polkit-1/actions/org.freedesktop.udisks.policy

1
2
3
4
5
6
7
8
9
10
<action id="org.freedesktop.udisks.filesystem-mount">
  <description>Mount a device</description>
  <description xml:lang="da">Montér en enhed</description>
  <message>Authentication is required to mount the device</message>
  <defaults>
    <allow_any>yes</allow_any>
    <allow_inactive>yes</allow_inactive>
    <allow_active>yes</allow_active>
  </defaults>
</action>

修改/usr/share/polkit-1/actions/org.freedesktop.udisks2.policy

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<action id="org.freedesktop.udisks2.filesystem-mount">
  <description>Mount a filesystem</description>
  <message>Authentication is required to mount the filesystem</message>
  <defaults>
    <allow_any>yes</allow_any>
    <allow_inactive>yes</allow_inactive>
    <allow_active>yes</allow_active>
  </defaults>
</action>

<action id="org.freedesktop.udisks2.filesystem-mount-system">
  <description>Mount a filesystem on a system device</description>
  <message>Authentication is required to mount the filesystem</message>
  <defaults>
    <allow_any>yes</allow_any>
    <allow_inactive>yes</allow_inactive>
    <allow_active>yes</allow_active>
  </defaults>
</action>

[TOC]