操作系统安装过程的主要步骤
linux发行版本(本文指的是CTyunOS)的安装过程的主要目的是根据用户指定的参数,将操作系统“放置”到指定的存储设备上,并设置例如用户密码,网络,时区等参数,按我个人的理解安装程序的是用户提供便于安装配置操作系统的工具,毕竟磁盘分区,配置启动参数,安装grub,命令执行密码设置或者网络参数设置等对于普通用户来说还是比较困难。操作系统安装过程主要分成如下几个步骤:
- 磁盘分区
- 软件包安装
- grub安装
- 系统参数配置(如用户密码设置)
磁盘分区
在磁盘分区之前,需要选择将系统开机启动选项设置为带有目标安装版本iso文件的光盘启动,要确保系统中具备fdisk等磁盘分区工具。
开机之后,执行:
fdisk /dev/sdx ##这里x由目标安装磁盘决定
然后分别执行:
o 创建一个新的DOS分区表
n 依次创建一个两个分区,其中boot分区可以选择1G大小
t 分别将两个分区的分区类型设置为Linux类型和Linux LVM类型
完成磁盘分区之后,使用lvm2工具创建逻辑卷
vgcreate vg_name /dev/sdx2 ##创建一个名为vg_name的volume group
lvcreate -n root -L <size> vg_name ##创建一个名为root的逻辑卷并设置大小
lvcreate -n swap -L <size> vg_name ##创建一个名为swap的逻辑卷并设置大小
然后格式化分区:
mkfs.ext4 /dev/vg_name/root ##将root分区格式化为ext4类型
mkswap /dev/vg_name/swap ##将swap分区格式化为swap类型
执行完上述步骤之后执行lsblk,结果如下:
软件包安装
在软件包安装之前,需要将待安装的软件包rpm文件拷贝到/srv/repo/Packages/执行,并且在/srv/repo中创建本地repo源:
createrepo .
并修改yum.repos.d下的repo源设置:
[local]
name=local repo
baseurl=file:///srv/repo/
enabled=1
gpgcheck=0
然后执行软件包安装:
dnf --installroot=/root/installroot/ install /srv/repo/Packages/*.rpm -y
其中,installroot是挂载了/dev/vg_name/root,执行完成后可以看到软件包都按照到了installroot目录下了:
GRUB安装
在执行grub安装之前需要先执行
mount --bind /dev /root/installroot/dev
然后就可以执行chroot切换根目录了
chroot ./
如果此时直接执行grub2安装,大概率是会保持的,因为它找不到目标设备,所以需要先执行:
mount -t sysfs sysfs /sys
mount -t proc proc /proc
然后执行grub2安装
grub2-install --no-floppy /dev/sdx ##这里的x和分区设置一致
然后生成grub.cfg文件
本次手动执行安装的主要步骤算是完成了,用户密码设置等工作可以在切换后的根目录下执行相关指令完成,本文就不再赘述了,最后系统启动介质为本次手动安装的目标磁盘,然后重启:
可以看到grub中识别到的操作系统即为本次手动安装的系统。