注意:这里讲述的是如何定制自己的Linux系统
先看一下现在机器的硬盘情况,可以看到就一块50G的硬盘
当前机器的硬盘
添加一块硬盘:
点击硬盘
选择SCSI
创建新...
划分大小
给新划分的磁盘取个名字,好辨认
给新磁盘取个名字
点击确定
现在再开机,进行分区,格式化等,关于这块磁盘,分区成两个,一个是boot,一个是它的根分区(对它自己来说)
使用lsblk来看一下硬盘情况,可以看到刚刚新增加的20G的硬盘,作为第二块硬盘(sdb),但是它还没有分区,格式化
查看硬盘情况
进行分区(fdisk命令),第一块区域给500M(用作boot分区)
fdisk给磁盘分区
再看一下磁盘情况发现磁盘已经分区好了
查看新磁盘分区
现在进行格式化:两个分区都格式化成ext4,
格式化
再进行挂载:目标是在当前的Linux中建立两个目录/mnt/boot和/mnt/sysroot,然后将boot挂载到sdb1分区,将sysroot挂载到sdb2这个分区,图表示如下
挂载图
看一下要挂载的这两个目录
目录
将sdb1挂载到boot,sdb2挂载到sysroot:
挂载命令
现在将Linux本来的磁盘及sda里的引导及其他重要内容拷贝到sdb中去
使用命令grub2-install --root-directory=/mnt /dev/sdb 其中grub2-install命令是用于安装GRUB2引导程序的命令,用于在指定的根目录(一般是挂载的根文件系统)上安装 GRUB2 引导程序;--root-directory=/mnt: 这是一个选项,用于指定 GRUB2 安装的根目录。通常,根目录是 Linux 系统根文件系统的挂载点。在这里,/mnt 是一个例子,表示将 GRUB2 安装到挂载在 /mnt 目录下的根文件系统;/dev/sdb: 这是目标磁盘的设备文件。
安装grub,内核文件拷贝只目标磁盘
再使用hexdump -C -n 512 /dev/sdb验证一下看有没有装上
没有报错打出文本信息就是装上了
现在开始拷贝了,使用cp -rf /boot/* /mnt/boot/即将sda的boot里的所有内容拷贝到sdb第一个分区中(拷贝之前最好先将/mnt/boot/下的内容全删掉)
拷贝
再修改grub2/grub.cfg文件(要在这个文件中指定哪些盘是启动盘,哪些是根目录盘等)
找到并打开grub.cfg文件
这个文件是直接从sda里拷贝过来的因此里面的信息都是跟sda关联的
查看磁盘关联
现在要将关联改成现在的磁盘,即下图(下面还有两处没展示出来,具体看修改结果)
修改关联
修改之后的结果
修改结果
注意蓝色框,要加上的一句selinux=0 init=/bin/bash表示走自己定制的这条路不要走系统的,到此配置文件修改完成,保存退出!
再创建目标主机(即新增磁盘)根文件系统即拷贝一些重要目录过来(虽然可能不用且是空的,但是得有),即在sdb2中将这些目录都建立起来
建立重要目录
再把原本linux里lib64的库文件拷贝到sdb2里去cp /lib64/*.* /mnt/sysroot/lib64/
拷贝库文件
再把shell拷贝过去即cp /bin/bash /mnt/sysroot/bin/
拷贝shell
到现在,最基本的Linux系统已经有了
现在,可以创建一个新的虚拟机,然后将默认分配的硬盘拿掉,指向我们刚刚创建的磁盘即可
要注意,新增的硬盘对于之前的Linux是第二块磁盘,所以显示的是sdb,但是对于现在新的这个linux来说这个新的磁盘是它的第一块盘,因此它会显示为sda
新建一个虚拟机
将原来的硬盘拿掉
移除原来的硬盘
再添加上刚刚创建的新硬盘
添加硬盘
SCSI
使用现有...
选择
点击完成确定
现在就可以开机启动
开机
至此就可以开机,并且看到一个最原始的画面了!!
//在我自己的虚拟机上最后没有起来,先记录到这里,待后面再修改