利用加密的LVM安装Arch
本帖最后由 NoName_3031 于 2020-9-19 19:29 编辑发现论坛的编辑器有支持md了 赶紧移植一篇自己的文稿试试水(
**转发请注明来源**
### 在阅读本教程前:
* 请将"/dev/sda"换成您自己的U盘名称(例:/dev/sdc)
* 并请确保你的电脑架构是**amd64**或者是**i386**
* 防止误操作把小姐姐清出D盘或者扬了某个人的论文毕设和游戏存档,**请断开其他储存设备的连接**
---
这是根据网上四篇教程总结出的 更加通用,更加安全的一篇教程。没关系,照抄就对了。(被打)
> [三篇教程其一](https://www.viseator.com/2017/05/17/arch_install/) · [三篇教程其二](https://www.howtoing.com/how-to-install-arch-linux-with-full-disk-encryption/) · [三篇教程其三](https://blog.yangmame.org/在U盘安装加密的Linux系统.html)
>
> ~~官网的wiki我就不放了8?~~
---
由于涉及到vim操作, 在这里简略说下:
`Insert` 进入编辑模式
`ESC` 退出可输入指令
`p` 是粘贴
`:wq` 是保存并退出(前面有分号)
`:yn` 是复制n行(前面有分号)
实在不习惯可以用nano(笑
### 获取并从安装介质启动
请去(https://www.archlinux.org/download/)官网下载光盘镜像 并写入到U盘/光盘上
启动时 请按照你的电脑主板生产商的指示进入BIOS界面(一般是delete) 并尽量从UEFI启动
### 联网并编辑软件源
`dhcpcd`或着 `wifi-menu`(后者请按照流程输入WiFi配置信息)
`timedatectl set-ntp true`(时间更新)
`vim /etc/pacman.d/mirrorlist`(编辑镜像源)
`pacman -Sy`(扫描并更新源)
### 分区(请灵活调整)
##### 分区概览(GPT分区)
| 分区名称 | 文件系统 | 安装时的挂载点 | 建议分区大小 | 我的情况(16GU盘) |
| :- | :- | :- | :- | :- |
| sda1 | biosboot | 无 | 2~8M | 4M |
| sda2 | vfat(FAT32) | /mnt/boot/efi | 64~512M | 128M |
| sda3 | ext4 | /mnt/boot | 256~768M | 256M |
| sda4(卷组名:System) | 加密的物理卷 | 无 | 看情况 | (14+0+1)G |
| System-root | ext4 | /mnt | 看情况(最好>=10G) | 14G |
| System-data | ext4 | 无 | 用来完全利用磁盘空间的 | 0M(对 没有了) |
| System-swap | swap | 无 | 你的RAM大小或更大 | 1G(小点也没事) |
| sda4 | 随意 | 随意 | 用来完全利用磁盘空间的 | 被瓜分后剩余的635M |
> 注: 后期可通过 `mkswap [文件路径]` , `swapon [文件路径]` 和`chmod 600 [文件路径]`指令创建swap文件
---
##### 配置分区
擦除磁盘(防止~~被扒内裤~~元数据泄露):`shred --verbose --random-source=/dev/urandom -- /dev/sda`
> 注:这里iterations=2 指的是擦除两遍
新建加密分区:`cryptsetup --verbose --cipher aes-xts-plain64 --key-size 512 --hash sha512 --iter-time 8192 --use-random luksFormat /dev/sda4`
> 注:如果CPU性能较弱可以将迭代次数从8192降低一些,但最好在4000以上以保证安全性。
创建lvm卷:`cryptsetup open --type luks /dev/sda4 cryptlvm`
创建物理卷:`pvcreate /dev/mapper/cryptlvm`
创建System组:`vgcreate System /dev/mapper/cryptlvm`
创建根分区:`lvcreate -L ▲G System -n root`
> 注:▲是你想要的root分区大小,最好在10G以上
创建swap分区:`lvcreate -L ■G System -n swap`
> 注:■是你想要的swap大小,最好在你的ram容量以上,以防休眠到硬盘时出错
创建data分区:`lvcreate -l 100%FREE System -n data`
##### 格式化
格式化efi分区:`mkfs -t vfat -F 32 /dev/sda2`
> 注: sda1被拿去作biosboot了 故不格式化
格式化boot分区:`mkfs.ext4 /dev/sda3`
格式化root分区:`mkfs.ext4 /dev/mapper/System-root`
格式化swap分区:`mkswap /dev/mapper/System-swap`
开启swap分区:`swapon /dev/mapper/System-swap`
格式化data分区(外部):`mkfs -t vfat -F 32 /dev/sda5`
##### 挂载分区
`mount -t ext4 /dev/System-root /mnt`
`mkdir -p /mnt/boot`
`mount -t ext4 /dev/sda3 /mnt/boot`
`mkdir -p /mnt/boot/efi`
`mount -t vfat /dev/sda2 /mnt/boot/efi`
### 安装
安装基本系统:`pacstrap -i /mnt base base-devel linux linux-firmware vim lvm2 dhcpcd grub efibootmgr networkmanager network-manager-applet wpa_supplicant os-prober ntfs-3g`
> 可选在同时安装kde桌面: `plasma kde-applications`
>
> 注:如果安装了桌面请务必执行: `systemctl enable NetworkManager sddm`注意大小写
创建fstab文件,用于开机时挂载分区`genfstab -U -p /mnt >> /mnt/etc/fstab`
> 注:"-U"指的是根据uuid挂载 也可以替换成"-L"来根据label挂载
### 配置
改变根目录:`arch-chroot /mnt`
设置使用网络时间:`timedatectl set-ntp true`
配置地区设置:`vim /etc/locale.gen` 取消注释en_US.UTF-8,zh_CN.UTF-8,zh_TW.UTF-8 退出
应用地区设置:`locale-gen`
设置语言:`echo LANG=en_US.UTF-8 > /etc/locale.conf`
设置时区:`ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime`
设置硬件时钟:`hwclock --systohc --utc`
设置root密码:`passwd root`
设置主机名:`echo ● > /etc/hostname`
> 注:●是你想设置的主机名
添加用户`useradd -m -g users -G wheel,games,power,optical,storage,scanner,lp,audio,video -s /bin/bash ▢`
更改新用户密码:`passwd ▢`
> 注:▢是你想设置的一般用户名
让一般用户可以使用sudo:`EDITOR=vim visudo` 取消注释 %whell all=(all) all
记下加密物理卷的UUID`blkid`
> 注:是带有'TYPE="crypto_LUKS"'的分区,请不要和其它分区的UUID混淆.
`vim /etc/default/grub` 在GRUB_CMDLINE_LINUX=""的双引号间加入:`cryptdevice=UUID=◯:cryptlvm root=/dev/System/root resume=/dev/System/swap`
> 注:◯是刚刚记下的UUID
配置内核:`vim /etc/mkinitcpio.conf` 在HOOKS里 加入 **keyboard keymap encrypt lvm2 resume**(注意顺序)
> 例子:HOOKS=(base udev autodetect **keyboard** **keymap** modconf block **encrypt** **lvm2** **resume** filesystems fsck)
> 如果是笔记本等设备 在/etc/systemd/logind.conf里添加"HandleLidSwitch=hibernate"
制作:`mkinitcpio -p linux`
安装引导(efi):`grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=◇`
> 注:◇是给efi启动选项的好听的名字 不弄也可以
安装引导(legacy):`grub-install --target=i386-pc /dev/sda`efi+bios双引导
> ~~注:我也不知道为什么这U盘换了一台电脑启动,uefi就失效了,淦~~
导出启动配置:`grub-mkconfig --o /boot/grub/grub.cfg`
退出chroot:`exit`
重启:`reboot`
至此 你的电脑~~应该~~能启动了 欢迎使用
---
### 附录
##### 显示相关
> intel `sudo pacman -S xf86-video-intel`
>
> nvidia `sudo pacman -S xf86-video-nouveau`
>
> ATI `sudo pacman -S xf86-video-amdgpu`
##### 软件相关
> ▷处理器微码(Microcode)
>
> AMD `pacman -S amd-ucode`
>
> Intel `pacman -S intel-ucode`
>
> ▷AUR(用户软件库) `git clone https://aur.archlinux.org/yay.git` `cd yay` `makepkg -si`
>
> 中文输入法(GDM已经集成,不用搞) `pacman -S noto-fonts-cjk fcitx fcitx-im kcm-fcitx`
>
>> 注:最后一个是图形化配置程序
>>
>
> 在/etc/profile文件,在文件开头加入三行:
>
> ```
> export XMODIFIERS="@im=fcitx"
> export GTK_IM_MODULE="fcitx"
> export QT_IM_MODULE="fcitx"
> ```
>
> ▷Yakuake(下拉式终端) `pacman -S yakuake`
>
> ▷v2ray(梯子) `yay -S v2raya`
>
>> 注:会自动安装依赖,所以懒得打v2ray了
>>
>
> ▷VirtualBox 虚拟机 `pacman -S virtualbox virtualbox-ext-vnc virtualbox-guest-iso virtualbox-host-modules-arch linux-headers`
---
**更新于2020/08/13(Y/M/D)**
**移植自[本人TG频道](https://t.me/noname_3031_channel/)到bbs.luobotou.org于2020/09/19(Y/M/D)**
**如有错误请指出**
很强 那我下次弄个在windows10下安装wsl2并安装ubuntu系统且安装ubuntu桌面的教程 可以加精么/斜眼笑 话说我上述的帖放哪个板块会比较好 seatt1234 发表于 2020-9-19 21:52
那我下次弄个在windows10下安装wsl2并安装ubuntu系统且安装ubuntu桌面的教程 可以加精么/斜眼笑 ...
Windows10是屑(大声 seatt1234 发表于 2020-9-19 21:52
那我下次弄个在windows10下安装wsl2并安装ubuntu系统且安装ubuntu桌面的教程 可以加精么/斜眼笑 ...
其实是你搞错重点了
发现论坛的编辑器有支持md了 赶紧移植一篇自己的文稿试试水 -.- 本帖最后由 NoName_3031 于 2020-9-19 22:49 编辑
nkc3g4 发表于 2020-9-19 20:51
很强
你试了吗?对于读写速度较慢的U盘的话 arch还是很香的 (450M/秒的U盘