环境
Lenovo G50-70 BCM43142 网卡,Win10 原版镜像。
主板调成 EFI 启动,BIOS A=SATA Controller Mode 设置为 AHCI。
Rufus 制作 Win10 启动盘,Rufus 制作 Arch 启动盘。
Win 10 安装
按左边电源边的小按钮,选择 Boot Menu,选择 EFI USB Device。
进入 Win10 安装界面,一路下一步,直到分区。
Shift+Fn+F10 调出命令行:
diskpart启动分区管理工具list disk列出磁盘Select disk n选中磁盘(n是磁盘号,我这里是0)clean清除磁盘数据convert gpt磁盘转换为gpt格式exit退出分区管理工具exit退出命令行
在可视化分区管理处刷新,然后进行分区。
然后选中作为 C 盘下一步。
接下来傻瓜式下一步安装即可。
Arch 安装
更新
之前在 pacstrap 安装基础系统之前要手动添加源
vim /etc/pacman.d/mirrorlist 添加源
# 文件头加入阿里源
Server = https://mirrors.aliyun.com/archlinux/$repo/os/$arch
但是在 2020.9 之后,引入了 reflector,这玩意联网之后就会按默认配置自动去更新 mirrolist,但是默认的配置在国内有些根本访问不稳,systemd 就有概率会在安装的中途报错,所以现在在联网之前,先编辑一下 reflector 的配置,后面也就省去手动加源了,而且这玩意有个 timer systemd... 报错报一串,安装好后也会搞事情
vim /etc/xdg/reflector/reflector.conf
--save /etc/pacman.d/mirrorlist
--country China
--protocol https
--latest 5
--sort rate
连接 WiFi
如果使用的是网线连接就跳过此步骤。
rfkill unblock allip link查询无线网卡名称,比如这里是 wlan0ip link set wlan0 upwpa_supplicant -B -i wlan0 -c <(wpa_passphrase ${SSID} ${PASSWORD})连接 WiFi,${SSID}${PASSWORD}分别为 WiFi SSID 与密码
安装系统
ping -c 3 archlinux.org验证网络是否连通timedatectl set-ntp true更新时间lsblk列出磁盘fdisk /dev/sda对 /sda 进行分区,#后面为相关命令的解释,这里没有分 EFI 分区,因为是双系统,和 Win 共用 /dev/sda2
# 交换分区
n
回车
回车
+4G
# 根目录
n
回车
回车
+60G
# /home 分区
n
回车
回车
回车
# 完成分区
w
PS: 如果是单系统就多分一个分区格式化为 mkfs.vfat -F32 /dev/sdax
- 格式化上面的分区
mkswap /dev/sda8
mkfs.ext4 /dev/sda9
mkfs.ext4 /dev/sda10
- 挂载分区
# 挂载根分区
mount /dev/sda9 /mnt
# 开启交换分区
swapon /dev/sda8
# 挂载 /home 分区
mkdir /mnt/home
mount /dev/sda10 /mnt/home
# 挂载 EFI 分区,这里用的是 Win 的
mkdir -p /mnt/boot/efi
mount /dev/sda2 /mnt/boot/efi
pacstrap /mnt base linux linux-firmware安装基本系统genfstab -U /mnt >> /mnt/etc/fstab生成 fstabarch-chroot /mnt切换到新系统pacman -S vim装 vimln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime设置时区- 删除 /etc/locale.gen 中需要使用的行前的注释符
#,建议使用en_US.UTF-8 UTF-8 locale-gen生成 locale 信息echo LANG=en_US.UTF-8 > /etc/locale.conf创建 locale.confecho studio > /etc/hostname修改主机名vim /etc/hosts修改 /etc/hosts 如下
127.0.0.1 localhost
::1 localhost
127.0.1.1 studio.localdomain studio
passwd设置 root 密码- 安装 grub 引导
pacman -S dosfstools grub efibootmgr
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch_grub --recheck
grub-mkconfig -o /boot/grub/grub.cfg
vim /etc/pacman.conf加入 cn 源
[archlinuxcn]
Server = https://mirrors.aliyun.com/archlinuxcn/$arch
pacman -Syy更新源pacman -S linux-headers broadcom-wl-dkms rfkill dhcpcd安装无线网卡驱动systemctl enable dhcpcd开启 dhcpcduseradd -m -s /bin/bash seliote创建一个普通用户passwd seliote修改密码pacman -S xorg xorg-server xorg-xinit xf86-video-ati xfce4 xfce4-screensaver xdg-user-dirs sddm wqy-zenhei network-manager-applet安装 X Window 及其相关的systemctl enable sddm开启 sddmsystemctl enable NetworkManager开启 NetworkManagervim /etc/xdg/user-dirs.defaults把 xfce4 会生成的文件夹都改成小写命名,命名不一致太难受了exit安装完成,退出 chrootumount -R /mnt卸载挂载的分区poweroff关机
其他配置
vim /boot/grub/grub.cfgGrub 中添加 Windows 引导
# grub-probe --target=fs_uuid $esp/boot/efi/EFI/Microsoft/Boot/bootmgfw.efi 获取 UUID
# grub-probe --target=hints_string $esp/boot/efi/EFI/Microsoft/Boot/bootmgfw.efi 获取 hints_string
# 在行 ### END /etc/grub.d/10_linux ### 前加入,将其中 $hints_string 与 $UUID 替换为前文得到的
menuentry 'Windows 10' {
insmod part_gpt
insmod fat
insmod search_fs_uuid
insmod chain
search --fs-uuid --set=root $hints_string $UUID
chainloader /efi/Microsoft/Boot/bootmgfw.efi
}
rmmod pcspkrecho "blacklist pcspkr" > /etc/modprobe.d/nobeep.conf去除烦人的 beep 声vim /etc/asound.conf去除静音
defaults.pcm.card 1
defaults.pam.device 0
defaults.ctl.card 1
pacman -S alsa-utils安装声卡管理器alsamixer按 F6 选择第二个声卡(第三行),按 m 挨个去除所有的静音pacman -S xfce4-netload-plugin xfce4-screenshooter安装几个 xfce 插件,网速以及截图- Setting -> KeyBoard -> Application Shortcuts 设置几个快捷方式,
amixer set Master 100%-静音键,amixer set Master 5%+音量加,amixer set Master 5%-音量减,xfce4-screenshooter -m -r -s /home/seliote/pictures/screenshooter/截图键(记得mkdir pictures/screenshooter),xflock4是锁屏键 timedatectl set-local-rtc 1解决双系统时钟错乱的问题,Win 的方式感觉更合理,所以这里修改了 Linux 的pacman -S openssh安装 SSHvim /etc/ssh/sshd_config查找ClientAliveInterval,修改为ClientAliveInterval 10,保持 SSH 心跳,避免断开- 安装 haveged 生成熵,并安装 keyring
pacman -S haveged
systemctl start haveged
systemctl enable haveged
rm -fr /etc/pacman.d/gnupg
pacman-key --init
pacman-key --populate archlinux
pacman -S archlinux-keyring
pacman -S archlinuxcn-keyring
# 如果 cn-keyring 签名还报失败就执行下面的,然后重装 cn 的
pacman-key --populate archlinuxcn
pacman -S sudo安装 sudo,export EDITOR=vimvisudo配置一下普通用户pacman -S fcitx-im fcitx-configtool安装中文输入法,选择依赖的时候那几个 gtk 的和 qt 的都需要装,否则会没有输入框,安装完成后重新登录,右键右上角输入法标志,进入 configuration,左下角加号,取消勾选 Only Show Current Language,添加 Pinyin Chinese-China,默认的 English 需要留下,否则输入不了英文,再设置一下环境变量vim /etc/profile
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
vim ~/.bashrc设置 bash
alias ll='ls -alh --color=auto'
alias grep='grep --color=auto'
PMT_COLOR="[$(tput bold)$(tput setab 0)$(tput setaf 2)]"
PMT_RESET="[$(tput sgr0)]"
export PS1="${PMT_COLOR}u A w >>>${PMT_RESET} "
vim ~/.vimrc配置 vim
set mouse=v
set number
set ts=4
set expandtab
set autoindent
syntax on
set hlsearch
set nowrapscan
- 这里补一个控制台连接 WiFI 的步骤,如果没有 X Window 的话就用这个,
pacman -S dialog wpa_supplicantrfkill unblock allip linkip link set wlp2s0 downwifi-menu选择并配置,以后使用的话是ip link set wlp2s0 downwifi-menu,重新连接是rfkill unblock allip link set wlp2s0 upwifi-menu
软件配置
- 安装 Chrome
sudo pacman -S google-chrome - 安装 MarkDown、PDF、epub 工具
sudo pacman -S retext zathura zathura-pdf-mupdf - 安装 JDK:
sudo pacman -S jdk-openjdk,java -version看一下,当然也可以装其他版本,jdk8-openjdk 这个包是 JDK 8,archlinux-java 后面可以切换,android-sdk 不支持 Java 8+ 的,慎重 - 安装 MariaDB
sudo pacman -S mariadb,sudo mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql执行自安装程序,sudo systemctl start mysqld启动一把,sudo mysql_secure_installation安全启动,配置一下即可 - 也可以用 PostgreSQL
sudo pacman -S postgresqlsudo -iu postgres[postgres@studio ~]$ initdb --locale en_US.UTF-8 -E UTF8 -D /var/lib/postgres/data[postgres@studio ~]$ exitsudo systemctl start postgresql - 安装 Tomcat9
sudo pacman -S tomcat9,Intellij IDEA 启动会报错,arch 官方提供的sudo gpasswd -a seliote tomcat9并不起作用,还要改一下权限sudo chmod -R 655 /etc/tomcat9 - 安装 Intellij IDEA
sudo pacman -S intellij-idea-ultimate-edition intellij-idea-ultimate-edition-jreintellij-idea-ultimate-edition-jre 要装,不然 JDK8 打不开 MarkDown,不是 8 或者 11,Intellij IDEA 都会打不开 - 安装 Android Studio
sudo pacman -S android-studiosdk 进去之后最好让 AS 自己下,当然源里也是有的,一些其他问题的解决:
# 模拟器启动不了
sudo ln -sf /usr/lib/libstdc++.so.6 ~/Android/Sdk/emulator/lib64/libstdc++/libstdc++.so.6
# 真机调试,手机打开USB调试
sudo pacman -S android-tools android-udev
sudo usermod -a -G adbusers seliote
sudo gpasswd -a seliote adbusers
# 报错 Emulator: /home/seliote/Android/Sdk/emulator/qemu/linux-x86_64/qemu-system-x86_64: error while loading shared libraries: libpulse.so.0: cannot open shared object file: No such file or directory
sudo pacman -S libpulse
- 视频播放器
sudo pacman -S vlc - 安装 TeamViewer
sudo pacman -S teamviewer使用前要sudo systemctl start teamviewerd - LibreOffice 太废了,MS Office 这玩意还是切系统搞吧
- Kafka Minio:
sudo pacman -Ss base-devel yaourtyaourt -S kafkasudo pacman -S minio
其他软件都是随手装了,没什么好记录的了
滚挂了修复
2019.01.02 系统滚挂了,wifi_menu 提示 no network found。距离上次安装正好差一个月一年,记录一下修复过程。
查看更新记录,寻找可能导致滚挂的包 $ sudo vim /var/log/pacman.log,比如这里日志的 [2019-01-02 11:48] [ALPM] upgraded wpa_supplicant (1:2.6-12 -> 1:2.7-1)
如果之前没有删过缓存包的话 $ sudo pacman -U /var/cache/pacman/pkg/.... 即可回滚,可惜我删了。
电脑插上网线或者手机共享一下网络
去 这里 找旧版的 tar.gz 并下载,解压 $ tar -zxvf packages-aaccde99f510add8851ca05febe9cca64406a27d.tar.gz
进入子目录 $ cd packages-aaccde99f510add8851ca05febe9cca64406a27d/repos/core-x86_64/
尝试打包 $ makepkg,我这里报错 ==> ERROR: One or more PGP signatures could not be verified! 签名不对,那就别校验了,$ makepkg --skippgpcheck
安装打包后的软件 $ sudo pacman -U wpa_supplicant-1:2.6-12-x86_64.pkg.tar.xz
重启测试一下 WiFi 能不能用了,OK 后忽略这个软件包的升级,$ vim /etc/pacman.conf 添加或新增 IgnorePkg = wpa_supplicant
其他
做完 ARCH 镜像后 U 盘会出问题,Win 下cmd, diskpart, list disk, select disk n, clean, 然后打开计算机右键管理,磁盘管理,右键磁盘,新建简单卷,然后下一步就 OK
如果是单 linux 的话加个 vfat 分区来引导,mkfs.vfat -F32 /dev/sda1