Current State
Debian GNU/Linux | Android | Kotlin | Free and Open Source Softwares
是在备战二战考研的无聊家里蹲计科大学生。喜欢 Linux / Kotlin / Android。日常倒腾 Debian GNU/Linux。
读了这么多年书,大学还算可以,顺利地毕业了,坚持到现在,有什么理由呢?一切的理大概是出于 纯爱 理念。不断前进,有能力给自己喜欢人最好的生活,培养自己的兴趣爱好,非常重要,是我理想中的生活状态(然而目前依然是单身宅男且程序写得稀烂)。
日常喜欢 NACG,如 Steins;Gate / Angel Beats! / Key 的其他游戏之类。
目前把精力集中在学习上。再努力争取一次。
感觉也需要借此塑造学习态度。考研本身能学到的字面知识终究有限。
Links:
GitHub: www.github.com/ketlrznt
GitLab: www.gitlab.com/ketlrznt
Mail: tansuanyinliao8888@gmail.com
Source Code
You can get the source code of my blog on GitHub: blogx
Task List
I want to do many things. Here are my dreams, and I want I can make them come true one day.
September 10, 2022, an Ordinary Saturday, Mid-autumn Day, Chinese Teachers' Day
Green text means Completed (year) (after a task is completed I would like to write a new passage or small description to talk about my feelings), whereas Wine Red means Under its Way... (and start year)
Hope I could finish these as many as I can. I do these just for fun and my devotion, I want to see the possibility inside myself and seek what I want.Personal
Become a postgraduate student!
Total Points 425: English 85 | Politics 80 | Mathematics 120 | Major 140
live in Japan
Be able to play some pieces like 夜の向日葵 | Bloom of Youth
Language (English / Japanese) (2022)
Pass TOEFL and JLPT N1
Personal norm: Diligence | Kindness | Integrity | Bravery | Freedom | Equality | Fraternity
Android Learning
Kotlin / Programming Methodology
Make an App using this concept
Make an App using this concept
Make an App using this concept
Android
Open Source Contribution (2022)
PR to some famous Android projects and get merged
Debian
make over 20 packages!
Debian Developer / Maintainer (2022)
Being admitted into Debian Developer / Maintainer team!
Arts
Drawing manga with Krita (2022) Publish my manga works
One of the Most Important Part
Have a gentle wife and lovely children (2022)
使用 debootstrap 安装 Debian 系统
写在前面
在最开始我想说明的是:为何选择 Debian?
我的体会是,Debian 是许许多多优秀的发行版的“母亲”,当我在入大学的暑假了解到了 Linux 操作系统后,我首先知道的是 Ubuntu,稍加搜索后就知道了其上游——Debian。同时知晓 Debian “哺育”了众多的发行版,因此我希望了解这一伟大的操作系统,从此走上了使用 Debian GNU/Linux 的道路。
它的优点:
- stable 版本很稳定。Debian stable 经过细致的测试后才会发布,发行周期较长。虽然会有老旧的问题,但对于服务器等可能不需要频繁更新以使用新特性的场景来说,stable 是一个好的选择。
- sid (不稳定版本)足够新、足够好。Debian 的 sid 处在 Debian 开发的前沿,与 stable 不同,sid 会频繁地收到软件更新,因此也能使用更新的软件。同时,得益于规范严格的 Debian Policy,Debian 官方源中的包质量有保障。
- 多架构。Debian 宣称自己为“通用操作系统”,令人感到高兴的是,Debain 为此做出了努力并取得了成效。到目前为止 Debian 是支持架构最多的发行版之一。支持列表
这是我大学几年中业余探索出的一些微小的成果,十分愿意与大家一起分享,遵照自由开源的精神将知识传递出去。
0. 工具准备
推荐使用 Ubuntu liveCD 进行安装。
需要额外下载的包:debootstrap,用于安装 Debian RootFS。arch-install-scripts,包含 genfstab 指令,可以方便地生成 fstab 文件。
接下来的所有指令以 su 权限执行。进入 Ubuntu 环境后可以打开终端,输入 sudo su 进入 su。
1. 磁盘的准备
安装系统首先需要准备好磁盘。建议对一块完整的磁盘执行操作: 以 nvme 硬盘为例子,硬盘标记为 /dev/nvme0n1。 分三个区域:
/boot/efi # 启动分区
/ # 根目录
/home # 家目录
parted /dev/nvme0n1 # 使用 parted 操作 /dev/nvme0n1
(parted) matable # 新建分区表
New disk label type? gpt # 选择 gpt 类型分区表,如果磁盘内原本有数据会警告,输入 yes
quit # 建表完毕,退出
接着使用 cfdisk 对磁盘进行分区。其中,启动分区 (它将是 /boot/efi)需要为第一个分区,并选择 EFI System 类型,建议大小 1G;根目录分区建议大小 100G,其余全部分配给家目录分区。根目录和家目录选择 Linux filesystem 类型。
cfdisk /dev/nvme0n1 # 对磁盘分区
分区结束后,依照在磁盘内的顺序,不同的分区也会有对应的编号,在 nvme 磁盘下是在原始磁盘标识后加上 p<num>,<num> 标识第 <num> 个分区。启动分区是磁盘内的第一个分区,它的标识就是 /dev/nvme0n1p1。
接着对不同分区进行格式化:
mkfs.vfat /dev/nvme0n1p1 # 格式化启动分区为 vfat
mkfs.btrfs /dev/nvme0n1p2
mkfs.btrfs /dev/nvme0n1p3 # 格式化另外两个分区为 btrfs
2. 安装基础系统
随后,建立目录,挂载分区。注意要先挂载 根目录。
mkdir /mnt/debian # 建立根目录文件夹
mount /dev/nvme0n1p2 / # 挂载根目录
mkdir -pv /mnt/debian/boot/efi # 建立启动分区目录
mkdir -pv /mnt/home # 建立家目录
mount /dev/nvme0n1p1 /boot/efi # 挂载启动分区
mount /dev/nvme0n1p3 /home # 挂载家目录
接下来使用 debootstrap 安装基础系统:
debootstrap --include btrfs-progs,locales,linux-image-amd64,grub-efi --arch amd64 sid /mnt/debian https://mirrors.ustc.edu.cn/debian
其中 btrfs-progs 用于 btrfs 文件系统下内核相关文件的生成。grub-efi 是之后需要的 grub 系统启动工具。sid 为 Debian 不稳定发行版的代号,/mnt/debian 标识系统安装位置(根目录),最后的网址为安装时选用的镜像地址,会写入新系统的 /etc/apt/sources.list 文件中。
系统安装完毕后,先生成 fstab 文件,fstab 文件内记录了文件系统分区相关信息:
genfstab -U /mnt/debian >> /mnt/debian/etc/fstab
随后,需要执行额外的操作,以让随后的新系统在 chroot 进入后正常工作。
mount --rbind /sys /mnt/debian/sys && mount --make-rslave /mnt/debian/sys
mount --rbind /dev /mnt/debian/dev && mount --make-rslave /mnt/debian/dev
mount --rbind /proc /mnt/debian/proc && mount --make-rslave /mnt/debian/proc
# chroot 进入子目录下的系统
chroot /mnt/debian
执行完毕后,处于新系统的 chroot 环境下。
3. 安装基础软件和设置
首先修改 /etc/apt/sources.list,此前它已经有一条记录,包含 Debian 的 main 仓库。此时需要补充另外两个 contrib 和 non-free 仓库以满足非自由固件需要(如网卡、蓝牙驱动等)。
nano /etc/apt/sources.list
deb https://mirrors.ustc.edu.cn/debian sid main contrib non-free # 在编辑器内 main 后新增 contrib 和 non-free 字段,保存退出
apt update # 刷新 apt 仓库
随后安装必要软件:
apt install sudo # sudo
apt install zsh # zsh 是一个方便易用的 shell
apt install firmware-linux # 固件
apt install firmware-iwlwifi # Intel 网卡驱动,如有需要选用
apt install firmware-realtek # realtek 驱动,含蓝牙
apt install network-manager # 网络管理工具
apt install neovim # 方便的编辑工具
apt install firefox # 火狐浏览器
修改主机名:
nano /etc/hostname # 填入自己喜欢的主机名(建议全小写),如 debian
nano /etc/hosts
将 /etc/hosts 修改为:
127.0.0.1 localhost
::1 localhost
127.0.1.1 <hostname>
hostname 部分填入之前的主机名。
设置 root 密码:
passwd
添加用户,例如用户名为 testuser:
useradd -m -s /bin/bash testuser # testuser 换为自己喜欢的用户名(小写)
将用户加入 sudoers:
usermod -aG sudo testuser
为 testuser 设置密码:
passwd testuser
配置时区和 locale:
dpkg-reconfigure tzdata # 配置时区,中国大陆选择 Asia/Shanghai
dpkg-reconfigure locales # 配置 locales,选择 en_US.UTF-8 和 zh_CN.UTF-8
安装 grub:
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=Debian # 安装 grub
update-grub # 更新 grub
update-grub 会从 /boot/efi 中找到开机所需要的内核与 initramfs 镜像,生成 grub 启动必须的配置。
4. 安装桌面环境
推荐使用 GNOME 桌面环境。Wiki 上安装的 gnome-core 我认为并不 “精简”。此应当为我所能找到的最简单配置。
apt install gnome-shell # GNOME shell 环境
apt install gnome-terminal # GNOME 提供的终端模拟器
apt install gdm3 # GNOME 桌面管理器,提供了 GNOME shell 登陆相关功能
apt install nautilus # GNOME 文件管理器
5. 结束
至此完成所有安装流程。退出 chroot 环境,解除挂载:
exit
umount -R /mnt/debian
6. 其他软件
进入桌面后,打开终端,安装其他可能需要的软件:
sudo apt install mpv # mpv 视频播放器
sudo apt install eog # GNOME 之眼图像查看程序
sudo apt install evince # evince 文档查看器
sudo apt install rhythmbox # rhythmbox 音乐播放器
sudo apt install geany # 依赖极少的图形化文本编辑器