定制自己的Linux系统
具体实验步骤
- 虚拟机新增一块硬盘,注意勾选<将虚拟磁盘存储为单个文件>
- 新磁盘新建分区、格式化、挂载等
[root@localhost ~]# lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTsda 8:0 0 20G 0 disk ├─sda1 8:1 0 1G 0 part /boot└─sda2 8:2 0 19G 0 part ├─centos-root 253:0 0 17G 0 lvm / └─centos-swap 253:1 0 2G 0 lvm [SWAP]sdb 8:16 0 20G 0 disk sr0 11:0 1 1024M 0 rom [root@localhost ~]# fdisk /dev/sdb欢迎使用 fdisk (util-linux 2.23.2)。更改将停留在内存中,直到您决定将更改写入磁盘。使用写入命令前请三思。Device does not contain a recognized partition table使用磁盘标识符 0xdc1a259e 创建新的 DOS 磁盘标签。命令(输入 m 获取帮助):nPartition type: p primary (0 primary, 0 extended, 4 free) e extendedSelect (default p): p分区号 (1-4,默认 1):起始 扇区 (2048-41943039,默认为 2048):将使用默认值 2048Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+500M 分区 1 已设置为 Linux 类型,大小设为 500 MiB命令(输入 m 获取帮助):nPartition type: p primary (1 primary, 0 extended, 3 free) e extendedSelect (default p): p分区号 (2-4,默认 2):起始 扇区 (1026048-41943039,默认为 1026048):将使用默认值 1026048Last 扇区, +扇区 or +size{K,M,G} (1026048-41943039,默认为 41943039):将使用默认值 41943039分区 2 已设置为 Linux 类型,大小设为 19.5 GiB命令(输入 m 获取帮助):wThe partition table has been altered!Calling ioctl() to re-read partition table.正在同步磁盘。[root@localhost ~]# mkfs.ext4 /dev/sdb1[root@localhost ~]# mkfs.ext4 /dev/sdb2[root@localhost ~]# mkdir -p /mnt/boot /mnt/sysroot[root@localhost ~]# mount /dev/sdb1 /mnt/boot/[root@localhost ~]# mount /dev/sdb2 /mnt/sysroot/[root@localhost ~]# lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTsda 8:0 0 20G 0 disk ├─sda1 8:1 0 1G 0 part /boot└─sda2 8:2 0 19G 0 part ├─centos-root 253:0 0 17G 0 lvm / └─centos-swap 253:1 0 2G 0 lvm [SWAP]sdb 8:16 0 20G 0 disk ├─sdb1 8:17 0 500M 0 part /mnt/boot└─sdb2 8:18 0 19.5G 0 part /mnt/sysrootsr0 11:0 1 1024M 0 rom
- 安装grup,将内核文件拷贝至目标磁盘
[root@localhost ~]# grub2-install --root-directory=/mnt /dev/sdbInstalling for i386-pc platform.Installation finished. No error reported.[root@localhost ~]# hexdump -C -n 512 /dev/sdb00000170 be 94 7d e8 2e 00 cd 18 eb fe 47 52 55 42 20 00 |..}.......GRUB .|00000180 47 65 6f 6d 00 48 61 72 64 20 44 69 73 6b 00 52 |Geom.Hard Disk.R|00000190 65 61 64 00 20 45 72 72 6f 72 0d 0a 00 bb 01 00 |ead. Error......|[root@localhost ~]# rm -rf /mnt/boot/*[root@localhost ~]# cp -rf /boot/* /mnt/boot/
- 修改
/mnt/boot/grub2/grub.cfg引导文件
[root@localhost ~]# lsblk -fNAME FSTYPE LABEL UUID MOUNTPOINTsda ├─sda1 xfs 4a5df469-b488-47ec-8500-c6b528e9bf25 /boot└─sda2 LVM2_member tcyE7V-vys1-vMJ9-n0iQ-elB1-fl7j-2NRjQl ├─centos-root xfs a2119d57-fc7a-4df4-b177-51f630ecfd28 / └─centos-swap swap 31ba9223-74d2-42c9-8986-a1d5933b19c1 [SWAP]sdb ├─sdb1 ext4 e29707ec-efce-4b7e-a3f8-87837f230ae6 /mnt/boot└─sdb2 ext4 3bd82865-9a27-430d-83e2-46b4fcb5de07 /mnt/sysrootsr0
[root@localhost ~]# vim /mnt/boot/grub2/grub.cfg#底行模式下输入(Shift + :)%s /4a5df469-b488-47ec-8500-c6b528e9bf25/e29707ec-efce-4b7e-a3f8-87837f230ae6%s /a2119d57-fc7a-4df4-b177-51f630ecfd28/3bd82865-9a27-430d-83e2-46b4fcb5de07#命令模式下查找linux16,并在行尾追加/linux16selinux=0 init=/bin/bash
- 创建目标主机根文件系统
[root@localhost ~]# mkdir -pv /mnt/sysroot/{bin,dev,home,lib64,mnt,proc,run,srv,tmp,var,boot,etc/rc.d,lib,media,opt,root,sbin,sys,usr}mkdir: 已创建目录 "/mnt/sysroot/bin"mkdir: 已创建目录 "/mnt/sysroot/dev"mkdir: 已创建目录 "/mnt/sysroot/home"mkdir: 已创建目录 "/mnt/sysroot/lib64"mkdir: 已创建目录 "/mnt/sysroot/mnt"mkdir: 已创建目录 "/mnt/sysroot/proc"mkdir: 已创建目录 "/mnt/sysroot/run"mkdir: 已创建目录 "/mnt/sysroot/srv"mkdir: 已创建目录 "/mnt/sysroot/tmp"mkdir: 已创建目录 "/mnt/sysroot/var"mkdir: 已创建目录 "/mnt/sysroot/boot"mkdir: 已创建目录 "/mnt/sysroot/etc"mkdir: 已创建目录 "/mnt/sysroot/etc/rc.d"mkdir: 已创建目录 "/mnt/sysroot/lib"mkdir: 已创建目录 "/mnt/sysroot/media"mkdir: 已创建目录 "/mnt/sysroot/opt"mkdir: 已创建目录 "/mnt/sysroot/root"mkdir: 已创建目录 "/mnt/sysroot/sbin"mkdir: 已创建目录 "/mnt/sysroot/sys"mkdir: 已创建目录 "/mnt/sysroot/usr"
- 拷贝需要的程序以及库文件
[root@localhost ~]# cp /bin/bash /mnt/sysroot/bin/[root@localhost ~]# cp /bin/ls /mnt/sysroot/bin/[root@localhost ~]# cp -rf /lib64/* /mnt/sysroot/lib64/
- 卸载磁盘,新建虚拟机选择制作完成的磁盘,开机即可
Linux内核升级
- 查看当前系统内核版本
[root@localhost ~]# uname -aLinux localhost.localdomain 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
- 升级内核
#检测内核版本并显示可升级的内核[root@localhost ~]# yum info kernel -q可安装的软件包名称 :kernel架构 :x86_64版本 :3.10.0发布 :1160.25.1.el7大小 :50 M源 :updates/7/x86_64简介 : The Linux kernel网址 :http://www.kernel.org/协议 : GPLv2描述 : The kernel package contains the Linux kernel (vmlinuz), the core of : any Linux operating system. The kernel handles the basic functions : of the operating system: memory allocation, process allocation, : device input and output, etc.#升级内核[root@localhost ~]# yum update kernel#查看已经安装的内核列表[root@localhost ~]# yum list kernel -q已安装的软件包kernel.x86_64 3.10.0-1160.el7 @anacondakernel.x86_64 3.10.0-1160.25.1.el7 @updates [root@localhost ~]# reboot