Linux 配置一个由Grub引导的单独直接运行的bash系统

本文详细介绍在CentOS 6环境下进行硬盘扩容的过程,包括添加新硬盘、分区、格式化、挂载及grub配置等步骤。此外还介绍了如何将配置好的硬盘迁移到新的虚拟机上。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

操作环境:Centos 6(其它操作系统可能有略微差别,但是原理相同)
操作虚拟机:VMware

1、给虚拟机新添加一块硬盘,大小适宜,这里我用的20G。
1
2、可以用fdisk -l查看一下当先系统的分区情况。
这里写图片描述
可以看到sdb为新添加的磁盘,还没有分区,一共分3个分区,分区结果为:

 /dev/sdb1 200M    (把他当做虚拟boot分区)
 /dev/sdb2 2G   (为swap分区,要注意把格式改为82,大小这里我给了2G)
 /dev/sdb3 5G   (为根分区,这里我给了5G)

下面开始分区:
这里写图片描述
这里写图片描述
保存退出,然后重读磁盘分区:
这里写图片描述
3、下面开始格式化分区
这里写图片描述
这里写图片描述
4、开始挂载分区,把sdb1分区挂载至boot目录下,但是不能是本地的boot目录,因为本地的boot目录正在使用,因此我在/mnt目录下新建一个boot目录。
这里写图片描述
5、安装grub,需要指定grub安装目录为/mnt,它会自动找boot目录
这里写图片描述
安装完grub后,可以查看一下/mnt/boot/grub/目录下的文件,发现没有grub.conf配置文件,这个文件装好后默认是没有的,所以需要我们手动添加。在添加配置文件之前看一下/mnt/boot/目录下也没有内核相关的文件,所以要把原来/boot目录下的一些文件拷贝到/mnt/boot目录下,并改一下名字(可改可不改)。
这里写图片描述
这里写图片描述

这里写图片描述
这里写图片描述
上面的那个配置文件中编辑的内容,其中kernel那一行,root=/dev/sda3,解释一下为什么是sda3,而不是sdb3:

  • 此前,我们创建分区的时候把sdb3当成为根分区,但是若要在新的磁盘上使用bash,则此分区就变成了主分区,故要变成sda3

6、然后把/dev/sdb3挂载到/mnt/sysroot(此目录需要另行创建)
任何一个根它都有一些最基本的目录,如bin、sbin、root等等。
这里写图片描述
这里写图片描述
我们知道,任何时候系统运行起来运行的第一个程序是bash(init除外),所以就把真正根的bash文件复制到/mnt/sysroot/bin目录下(init太复杂,就不整了),但是复制完并不算成功了,因为任何一个应用程序如果是基于动态编译的,它就会依赖于一些库,bash就是如此,故把这些库也复制进来(可用ldd命令查看应用程序有那些依赖库)。在复制库过来的时候要注意是64位的还是32位的,若是64位的就复制到lib64目录下,要是32位的就复制到lib目录下(本例中是32位的)。
复制完后sync同步一下。
这里写图片描述
7、上述所有步骤完成后切换一下根,回车后就会出现新的bash界面了。
这里写图片描述
切换成功后会发现好多命令都没有,但是一些内建命令还是有的,如exit命令。若是想要有多一点命令,可以去原来bin目录下复制一些命令到当前bin目录即可,注意依赖库关系。

上述就是这个实验的详细步骤,但是若是想要把这一块硬盘移动到新的虚拟机上使用也是可以的,下面大致说一下步骤。
在做下面实验之前,需要把上面我们做的那个磁盘上的grub配置文件修改一下,否则在启动新的虚拟机时会报错。修改内容为:
这里写图片描述
PS: 一定要注意,新添加的selinux=0不要写在最后位置。

大致操作步骤如下

  1. 新建一个虚拟机,在选择磁盘的时候要选择现有的虚拟磁盘,就是上面做好的磁盘。
    这里写图片描述
  2. 然后会让选择是哪一个磁盘,这个时候我们就要看一下我们在上面创建的第二块磁盘的位置和名字是啥了,然后选择的时候就选那个,然后其它的就一直下一步即可,最后保持现有格式创建。
  3. 然后启动虚拟机,接下来会显示grub界面,正常启动即可。

以上实验需要大家懂得如何分区,配置grub等操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RSQ博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值