目录
(1)mkdir -p /mnt/boot /mnt/sysroot
(3)mount /dev/sdb2 /mnt/sysroot/
(1)grub2-install --root-directory=/mnt /dev/sdb
(2)hexdump -C -n 512 /dev/sdb: 验证是否装上
8.拷贝需要的bash(或你需要的指令)和库文件给新系统使用
(1)cp /lib64/*.* /mnt/sysroot/lib64: 拷贝库文件(必备)
(2)cp /bin/bash /mnt/sysroot/bin/: 拷贝bash文件
9.创建新虚拟机,将默认分配的硬盘移除,指向刚创建的磁盘即可
(3)mount /dev/sdb2 /mnt/sysroot: 挂载(必须)
(4)cp /sbin/reboot /mnt/sysroot/sbin: 拷贝想要的指令
一、Linux启动原理
1、首先Linux通过自检,检查硬件设备有没有故障
2、如果有多块启动盘的话,需要在BIOS中选择启动磁盘
3、启动MBR中的bootloader引导程序
4、加载内核文件
5、执行所有进程的父进程、老祖宗systemd
6、欢迎界面
补:在Linux的启动流程中,加载内核文件时关键文件:
1 ) kernel文件: vmlinuz-3.10.0-957.el7.x86_64
2 ) initrd文件: initramfs-3.10.0-957.el7.x86_64.img
二、操作步骤
1.添加硬盘
一路默认即可,磁盘类型选scsi即可
2.分区
(1) lsblk: 查看硬盘情况:
(2) fdisk /dev/sdb: 进行分区
(3) lsblk: 查看sdb分区后的样子
3.对/dev/sdb分区进行格式化
(1)mkfs.ext4 /dev/sdb1
(2)mkfs.ext4 /dev/sdb2
同上,格式化为ext4模式
4.创建目录,挂载新的磁盘
(1)mkdir -p /mnt/boot /mnt/sysroot
(2)mount /dev/sdb1 /mnt/boot
(3)mount /dev/sdb2 /mnt/sysroot/
5.安装grub,内核文件拷贝至目标磁盘
(1)grub2-install --root-directory=/mnt /dev/sdb
(2)hexdump -C -n 512 /dev/sdb: 验证是否装上
图示打出文本信息便是安装成功
(3)rm -rf /mnt/boot/*: 删除原内容
补:先删除避免一直需要手动覆盖的问题
(4)cp -rf /boot/* /mnt/boot/: 拷贝
6.修改grub2/grub.cfg文件
在该文件中指定根目录和启动盘
(1)进入到目录下对grub.cfg文件进行修改
(2) 将原本的内容进行替换
所谓原本内容,如图所示,复制过来的.cfg文件装载的是原文件的指向信息,将这些信息进行修改即可
将root=文件路径中的文件路径修改为UUID=sbd2的UUID(对比上下图可看出来差异)
之后包含uuid这段的末尾部分加上 selinux=0 init=/bin/bash
(3)下面还有一块的修改同(2)步骤
7.创建目标主机根文件系统
mkdir -pv /mnt/sysroot/{etc/rc.d,usr,var,proc,sys,dev,lib,lib64,bin,sbin,boot,srv,mnt,media,home,root}
8.拷贝需要的bash(或你需要的指令)和库文件给新系统使用
(1)cp /lib64/*.* /mnt/sysroot/lib64: 拷贝库文件(必备)
(2)cp /bin/bash /mnt/sysroot/bin/: 拷贝bash文件
9.创建新虚拟机,将默认分配的硬盘移除,指向刚创建的磁盘即可
启动了一段时间后进入到了自建的系统= =
10.自定义
(1)将mini机关机
(2)开启原linux机
(3)mount /dev/sdb2 /mnt/sysroot: 挂载(必须)
由于并没有在fstab文件里面写入,所以重启会失效
(4)cp /sbin/reboot /mnt/sysroot/sbin: 拷贝想要的指令
注意指令存放位置对应,关闭本机后打开mini机就可以使用了(类似于一个硬盘两个机使用)
注:因为没有配置环境,所以只能带入路径使用