Lenovo G50-70 BCM43142网卡,Win10原版镜像。
主板调成EFI启动。
制作Win10启动盘,打开Rufus。
按左边电源边的小按钮,选择Boot Menu,选择EFI USB Device,进入Win10安装界面,一路下一步,直到分区。
Shift+Fn+F10调出命令行diskpart
启动分区管理工具list disk
列出磁盘Select disk n
选中磁盘(n是磁盘号,我这里是0)clean
清除磁盘数据convert gpt
磁盘转换为gpt格式exit
退出分区管理工具exit
退出命令行
在可视化分区管理处刷新,然后进行分区。
然后选中作为C盘的盘下一步。
用Rufus刻录Arch盘。插网线
验证网络是否连通#ping -c 3 archlinux.org
更新时间#timedatectl set-ntp true
列出磁盘#lsblk
选择磁盘进行分区,不分/boot,因为将挂载Windows的efi分区(这里使用/dev/sda)#fdisk /dev/sda
在fdisk中分别键入
分交换分区: n,回车键,回车键,+2G
分/
: n,回车键,回车键,+60G
分/tmp
: n,回车键,回车键,+5G,(这里分了一个/tmp分区,默认分的/tmp很小,否则在装AS时需要临时挂载U盘作为/tmp)
分/home
: n,回车键,回车键,回车键,
w,至此,分区完成。
格式化分区#mkswap /dev/sda8
#mkfs.ext4 /dev/sda9
#mkfs.ext4 /dev/sda10
#mkfs.ext4 /dev/sda11
挂载分区
首先挂载根分区#mount /dev/sda9 /mnt
使用swap分区#swapon /dev/sda8
挂载/tmp与/home#mkdir /mnt/tmp
#mount /dev/sda10 /mnt/tmp
#mkdir /mnt/home
#mount /dev/sda11 /mnt/home
此处还要挂载Windows所分出的EFI分区#mkdir -p /mnt/boot/efi
#mount /dev/sda2 /mnt/boot/efi
选择镜像源#vim /etc/pacman.d/mirrorlist
文件开头加入阿里源Server = http://mirrors.aliyun.com/archlinux/$repo/os/$arch
安装基本系统#pacstrap /mnt base linux linux-firmware
生成fstab#genfstab -U /mnt >> /mnt/etc/fstab
切换到新系统#arch-chroot /mnt
装几个必要的# pacman -S vim dhcpcd
设置时区#ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
删除/etc/locale.gen中需要使用的行前的注释符#
建议使用en_US.UTF-8 UTF-8
生成locale信息#locale-gen
创建locale.conf#echo LANG=en_US.UTF-8 > /etc/locale.conf
修改主机名#echo studio > /etc/hostname
修改/etc/hosts如下
127.0.0.1 localhost
::1 localhost
127.0.1.1 studio.localdomain studio
设置root密码#passwd
安装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
安装完成,退出chroot#exit
重启#umount -R /mnt
#reboot
重启后自动进入Arch插入网线还是没网
查看网卡#ip link
此处为 ens1s0
启用网卡#ip link set ens1s0 up
#systemctl enable dhcpcd.service
#systemctl start dhcpcd.service
等待一会 ping 一下
先创建一个普通用户# useradd -m -s /bin/bash seliote
passed seliote
接下来安装X Window 以及登陆管理器#pacman -S xorg xorg-server xorg-xinit xf86-video-ati xfce4 wqy-zenhei sddm
设置登陆管理器自启, sddm 默认不允许 root 登陆#systemctl enable sddm
下面安装无线网卡驱动#vim /etc/pacman.conf
最末加入以下内容
没设置 SigLevel = Optional TrustAll
[archlinuxcn]
Server = http://repo.archlinuxcn.org/$arch
更新源#pacman -Syy
安装驱动#pacman -S linux-headers broadcom-wl-dkms rfkill
重启
以下控制台以及 xfce 无线管理方式二选一
控制台使用 WiFi 的步骤
安装 wifi-menu#pacman -S dialog wpa_supplicant
#ip link
查看无线网卡,此处得到wlp2s0#rfkill unblock all
#ip link set wlp2s0 down
#wifi-menu
即可使用
以后使用WiFi步骤为#ip link set wlp2s0 down
#wifi-menu
重新连接#rfkill unblock all
#ip link set wlp2s0 up
#wifi-menu
xfce 使用 WiFi 的步骤#pacman -S network-manager-applet
#systemctl enable NetworkManager
#systemctl disable netctl
(如果有开启的话,默认没开)
然后在图形界面使用需要执行一次#rfkill unblock all
#ip link set wlp2s0 up
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
编辑文件 # vim /boot/grub/grub.cfg
,在行 ### END /etc/grub.d/10_linux ###
前加入
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
}
将其中$hints_string与$UUID替换为前文得到的
重启则加入了Win10引导
去除烦人的beep声#rmmod pcspkr
#echo "blacklist pcspkr" > /etc/modprobe.d/nobeep.conf
去除静音#sudo vim /etc/asound.conf
加入
defaults.pcm.card 1
defaults.pam.device 0
defaults.ctl.card 1
安装声卡管理器#pacman -S alsa-utils
#sudo alsamixer
按F6选择第二个声卡(第三行),按 m 挨个去除所有的静音
这个这次安装发现并不必要,还是留下来以备后面使用
把装不上驱动的AMD显卡扔进blacklist里(还有个方法是在 BIOS 里直接禁用掉独显)#sudo vim /etc/modprobe.d/noradeon.conf
install radeon /bin/false
install amdgpu /bin/false
#sudo mkinitcpio -p linux
PS1 的设置 #vim ~/.bashrc
PMT_COLOR="\[$(tput bold)$(tput setab 0)$(tput setaf 2)\]"
PMT_RESET="\[$(tput sgr0)\]"
export PS1="${PMT_COLOR}\u \A \w >>>${PMT_RESET} "
~~
安装几个xfce插件,网速以及截图#pacman -S xfce4-netload-plugin xfce4-screenshooter
设置几个快捷方式
Setting -> KeyBoard -> Application Shortcutsamixer set Master 100%-
是静音键amixer set Master 5%+
是音量加amixer set Master 5%-
是音量减xfce4-screenshooter -fm -s /home/seliote/Pictures/Screenshooter
是截图键
解决双系统下不同时间标准导致时间错乱,此处更改的是 Linux 的# timedatectl set-local-rtc 1
设置 grub 等待时长#vim /boot/grub/grub.cfg
找到set timeout=5
5 修改为指定的数值
安装并修改一下 SSH 配置,避免连接服务器一段时间不操作自动断开#pacman -S openssh
#vim /etc/ssh/sshd_config
查找ClientAliveInterval
取消行前注释并设置 30 秒发送一次心跳包ClientAliveInterval 30
之后安装 keyring 可能会报错,解决方案如下#pacman -Syu haveged
#systemctl start haveged
#systemctl enable haveged
#rm -fr /etc/pacman.d/gnupg
#pacman-key --init
#pacman-key --populate archlinux
#pacman-key --populate archlinuxcn
#pacman -S archlinux-keyring && pacman -S archlinuxcn-keyring
#vim ~/.vimrc
set mouse=v
set number
set ts=4
set expandtab
set autoindent
syntax on
set hlsearch
set nowrapscan
装个中文输入法#pacman -S fcitx-im fcitx-configtool
选择依赖的时候那几个 gtk 的和 qt 的都需要装,否则会没有输入框
安装完成后重新登录,右键右上角输入法标志,进入configuration,左下角加号,取消勾选Only Show Current Language,添加google-pinyin,默认的english需要留下,否则输入不了英文
添加环境变量#sudo vim /etc/profile
文件开始结尾处添加
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
安装Android Studio# pacman -S android-studio android-sdk
# sudo chmod -R 777 /opt/android-sdk
最好还是不要把 Android SDK 直接装吧,进了 Android Studio 后会自动下载
创建项目之后即便配置了 gradle 的本地仓库,但是部分还是不能用,需要设置全局代理
# export http_proxy='http://localhost:1080'
# export https_proxy='http://localhost:1080'
之后模拟器启动不了#sudo ln -sf /usr/lib/libstdc++.so.6 ~/Android/Sdk/emulator/lib64/libstdc++/libstdc++.so.6
要用真机调试,手机打开USB调试#pacman -S android-tools android-udev
#sudo usermod -a -G adbusers seliote
#sudo gpasswd -a seliote adbusers
AS今天滚完报错 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
解决办法是 #pacman -S libpulse
Markdown 编辑器用这个# sudo pacman -S retext
安装网易云#sudo vim /etc/pacman.conf
删除 /etc/pacman.conf 中 [archlinuxcn] 下的 SigLevel= 行,以使用默认设置#pacman -Syy
#pacman -Syu
#pacman -S archlinuxcn-keyring
#pacman -S netease-cloud-music
恕我直言,内存泄漏真可怕,音乐列表滑动也严重卡顿,听个响#pacman -Rs netease-cloud-music
安装 TeamViewer 后还需要设置一下# sudo pacman -S teamviewer
# sudo systemctl enable teamviewerd
为写个服务端PHP爬虫,本地搭建LNMP,因为LNMP用的比较少,所以全部没有设置服务自启
安装Nginx主线版本#pacman -S nginx-mainline
手动启动Nginx#sudo systemctl start nginx
浏览器进入127.0.0.1看Nginx是否安装成功
安装MariaDB#pacman -S mariadb
执行自安装程序#sudo mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
启动#sudo systemctl start mysqld
安全启动,按照提示设置root密码等#sudo mysql_secure_installation
安装PHP 7#pacman -S php-fpm
为Nginx配置PHP,去掉前面的分号并改为如下#sudo vim /etc/nginx/nginx.conf
line65: location ~ \.php$ {
line66: root /usr/share/nginx/html;
line67: fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
line68: fastcgi_index index.php;
line69: fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
line70: include fastcgi_params;
line71: }
启动PHP#sudo systemctl start php-fpm
写一个PHP文件然后用浏览器测试一下#sudo vim /usr/share/nginx/html/index.php
<? php
echo 'Hello world!'
设置PHP扩展,找到下面文件的这两行,去掉前面的分号
#sudo vim /etc/php/php.ini
;extension=mysqli
...
;extension=pdo_mysql
重启配置过的服务#sudo systemctl reload nginx
#sudo systemctl reload php-fpm
添加LNMP快捷启动与停止shell bash#vim ~/.bashrc
alias lnmp_start='sudo systemctl start mysqld ; sudo systemctl start nginx ; sudo systemctl start php-fpm'
alias lnmp_stop='sudo systemctl stop mysqld ; sudo systemctl stop nginx ; sudo systemctl stop php-fpm'
安装Tomcatpacman -S tomcat8
sudo gpasswd -a seliote tomcat8
sudo vim /etc/tomcat8/tomcat-users.xml
<!-- 添加管理用户,记得改密码 -->
<!-- </tomcat-users> 标签前一行添加 -->
<user username="admin" password="admin" roles="manager-gui,admin-gui" />
idea 报错,权限不够#sudo chmod -R 777 /etc/tomcat8
#sudo chmod -R 777 /usr/share/tomcat8
快捷启动vim ~/.bashrc
alias java_web_start='sudo systemctl start tomcat8; sudo systemctl start mysqld'
alias java_web_start='sudo systemctl stop tomcat8; sudo systemctl stop mysqld'
export JAVA_WEB_PATH="/var/lib/tomcat8/webapps"
最近做C#开发, 每次GRUB引导后都要手动选择排在第三的Win很不方便, 修改一下吧#sudo vim /boot/grub/grub.cfg
然后查找set default = 0
, 修改为set default = 2
重启即可
做完ARCH镜像后U盘会出问题,Win下cmd,diskpart,list disk,select disk n,clean,然后打开计算机右键管理,磁盘管理,右键磁盘,新建简单卷,然后下一步就OK
-------------------------------------------我是分割线----------------------------------------
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