• Arch + Win10 EFI 引导重装记录


    环境

    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 all
    • ip link 查询无线网卡名称,比如这里是 wlan0
    • ip link set wlan0 up
    • wpa_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 生成 fstab
    • arch-chroot /mnt 切换到新系统
    • pacman -S vim 装 vim
    • ln -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.conf
    • echo 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 开启 dhcpcd
    • useradd -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 开启 sddm
    • systemctl enable NetworkManager 开启 NetworkManager
    • vim /etc/xdg/user-dirs.defaults 把 xfce4 会生成的文件夹都改成小写命名,命名不一致太难受了
    • exit 安装完成,退出 chroot
    • umount -R /mnt 卸载挂载的分区
    • poweroff 关机

    其他配置

    • vim /boot/grub/grub.cfg Grub 中添加 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 pcspkr echo "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 安装 SSH
    • vim /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=vim visudo 配置一下普通用户
    • 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_supplicant rfkill unblock all ip link ip link set wlp2s0 down wifi-menu 选择并配置,以后使用的话是 ip link set wlp2s0 down wifi-menu,重新连接是 rfkill unblock all ip link set wlp2s0 up wifi-menu

    软件配置

    • 安装 Chrome sudo pacman -S google-chrome
    • 安装 MarkDown、PDF、epub 工具 sudo pacman -S retext zathura zathura-pdf-mupdf
    • 安装 JDK:sudo pacman -S jdk-openjdkjava -version 看一下,当然也可以装其他版本,jdk8-openjdk 这个包是 JDK 8,archlinux-java 后面可以切换,android-sdk 不支持 Java 8+ 的,慎重
    • 安装 MariaDB sudo pacman -S mariadbsudo mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql 执行自安装程序,sudo systemctl start mysqld 启动一把,sudo mysql_secure_installation 安全启动,配置一下即可
    • 也可以用 PostgreSQL sudo pacman -S postgresql sudo -iu postgres [postgres@studio ~]$ initdb --locale en_US.UTF-8 -E UTF8 -D /var/lib/postgres/data [postgres@studio ~]$ exit sudo 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-jre intellij-idea-ultimate-edition-jre 要装,不然 JDK8 打不开 MarkDown,不是 8 或者 11,Intellij IDEA 都会打不开
    • 安装 Android Studio sudo pacman -S android-studio sdk 进去之后最好让 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 yaourt yaourt -S kafka sudo 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

  • 相关阅读:
    (JS/JQ)与Ajax
    JS与JQ的DOM处理
    正则表达式
    JS事件大全
    CSS(初级)学习笔记
    HTML学习笔记
    leetcode记录——65. 有效数字
    dp专题
    Hackerrank---A stones game
    组合博弈问题
  • 原文地址:https://www.cnblogs.com/seliote/p/9313690.html
Copyright © 2020-2023  润新知