两块硬盘上各装一个linux,跟大神一起15分钟制作一个属于自己的Linux操作系统!...

计算机已成为现代人日常工作、学习和生活中必不可少的工具。操作系统是计算机之魂,作为用户使用计算机的接口,它负责调度执行各个用户程序,使计算机完成特定的任务;作为计算机硬件资源的管理者,它负责协调计算机中各类设备高效地工作。操作系统的重要性不言而喻,市面上主流的操作系统有Windows、Unix、Linux、Mac OS X。

Linux于1991年由芬兰大学生Linus开发,是一个类Unix的开源版操作系统,主要有以下几个特点:

开放式操作系统

Linux是一个免费软件,开发者可以自由安装并任意修改软件的源代码,相比Unix的命令行操作,Linux提供了窗口管理系统,相对容易操作,企业可以免费使用Linux,大大降低了成本预算。

强大的硬件支持

Linux系统非常容易维护,用户可以集中更新操作系统和所有安装的软件,即安全又高效。Linux能有效利用系统资源,允许用户针对特定的硬件要求进行安装,允许在旧计算机上安装Linux,从而有助于最佳地利用计算机硬件资源。

安全性高、稳定性强

Linux系统下除非用户以root身份登录,否则程序无法更改系统设置和配置,很少出现因为用户误操作导致计算机无法启动的情形。Linux下载的文件、恶意软件的权限将受到限制,能有效避免病毒的侵入,Windows系统中常见的勒索病毒、蠕虫病毒均无法在Linux下运行。Linux非常稳定,不易崩溃,Linux能在几年后保持和第一次安装时一样的运行速度。而Windows的话可能在运行半年后,速度就跟不上了。

Linux系统的成功归功于每个Linux爱好者的贡献,不管是在Linux内核还是开源软件等方面,都为我们后来人提供了一个良好的学习和研究环境。

791b3b40454f6f1e0166900214023e57.png

下面我们就一起来做个小实验:通过裁剪现有Linux系统,根据自己的需要,打造一个属于自己的Linux小系统,让其能够具备Linux的一些常用小功能。

二、原理

启动流程介绍:

制作Linux小系统之前,我们有必要再了解一下Linux的启动流程:

1、首先Linux要通过POST自检,检查硬件设备有没有故障

2、如果有多块启动盘的话,需要在BIOS中选择启动磁盘

3、启动MBR中的bootloader引导程序

4、加载内核文件

5、执行所有进程的父进程、老祖宗init

6、打印欢迎界面

在Linux的启动流程中,加载内核文件时还需要借助别外两个文件:

1)initrd,是CentOS5上用内存模拟的磁盘设备

2)initramfs,是CentOS6上用内存模拟的文件系统

在启程的流程中,init主要是用来做哪些操作的呢?

init通过调用/etc/inittab这个配置文件,然后再去执行/etc/rc.d/rc.sysinit的系统初始化脚本

好啦,原理我们已经知道了,接下来我们来看看具体的思路吧!

三、思路

1、我们要在一个现有的Linux系统上加一块硬盘/dev/sdb,在硬盘上分两个分区,一个是/boot,一个是/,并将其格式化。当然,我们需要明确的概念是,我们现在加的这个硬盘在现有的Linux系统中是/dev/sdb,但是,当我们把东西全部设置好时,我们就需要把这个硬盘拔除,放在我们的新系统上,此时,他就是/dev/sda啦。

2、在/dev/sdb这个硬盘上,我们要将其打造成一个独立的Linux系统,里面的所有文件是需要我们一个一个拷贝进去的。而且,作为一个将来要当/dev/sda的硬盘,里面一定要有grub文件诺~所以我们要安装grub文件。

3、同时,作为一个能独立运行的Linux系统,内核是一定不能少的!所以,我们要把内核文件和initramfs文件也一起拷到我们的/dev/sdb上。

4、现在我们系统已经初具规模了,接下来就是需要程序了0.0关于程序的拷贝我们可以通过一个脚本来实现。具体的脚本在下文中会给大家说到。

以上步骤完成,我们的自制Linux就完成啦~我们的思路就是这么回事,接下来,我们就开始吧!

四、操作步骤

这次实验我们以centos6.9为例~

1、目标磁盘分区

首先,我们在宿主机上添加一块大小为20G的硬盘:

262a4d8539034a8372b8d296fd589831.png

b1beac3baead7679cc0bfc9e98137f20.png

正在上传...取消

77f38a83a321e7a8511a620bacbc6ccd.png

82f2b0fddc7354b1f3ca07eed97a5475.png

beaf1101e2c4e6a7bf421bdf06c6a4e8.png

632978c173bbcc6d367ec6f279a9a17e.png

f29feda11fe0d1396af5df448e516d8c.png

添加完成后,点击确定,然后我们打开宿主机。 通过fdisk来给我们的/dev/sdb进行分区:

0c2616323949a529a1631cdebe4ec81b.png

接下来,我们对/dev/sdb的分区进行格式化:

c2ba4434eeb8288f3bbf9fbf52fbb39e.png

格式化完成后,我们创建一个文件夹。进行挂载:

1dcc40648837a79fab809155ef1019e9.png

注意:新建的文件夹必须是/mnt/boot

2、安装grub至目标磁盘

我们直接用grub-install –root-directory=/mnt命令来安装。用这个命令会安装grub引导第二阶段的文件。

4be8603302352fae067ceade869bf16d.png

我们可以来看一下二进制确认我们是否安装成功:

f04bf2acebbe9ecf37c21da7a2e65afc.png

安装成功。

3、复制内核文件和initrd文件

将内核文件和initrd文件复制到/dev/sdb下的boot目录中:

c8f7c6bef69782d5be50fdd391dc375c.png

4、建立grub.conf文件

上面我们已经移植了内核和initrd文件,我们可以根据其版本来编写grub.conf文件:

7ffe008a4521fe8816be840e62a4c044.png

注意,我们要把selinux给关掉,同时设定一下init,告诉内核不要再去找这个程序了,不然开机的时候会出现错误的~

5、创建一级目录并复制文件

至此,我们就缺目录和文件了~

创建开机后的一级目录,同时把/dev/sdb2挂载至/mnt/sysroot,使该目录作为根目录:

d721d2c422faacc617a58e7042f763d7.png

复制文件,复制文件我们通过脚本执行,复制我们平时常用的命令即可,小编这里复制了ls,ifconfig,bash,reboot,rm,modprobe,mount,ip,mkdir,touch,cat,vi,less,shutdown,insmod。我们可以用tree查看一下这些命令的复制情况:

056b9e88a78c0245d1eb85b90a41a9c3.png

很明显我们都复制成功了~

附:复制命令的脚本源代码

c027d21e743ca5c0efe01cd41a2f2653.png

6、复制网卡驱动

我们基本工作已经完成了,如果想使这个虚拟机带有网卡功能,我们就必须把网卡驱动拷过来,具体操作如下:

1)查询网卡详细信息:

ac5e01d472adaed43fc344fe4a250763.png

2)把网卡模块的路径复制到/mnt/sysroot的库文件下:

14094a809ccada740f9cc95bb56982e3.png

以上,我们的操作全部完成。现在我们就可以关机,然后把/dev/sdb这个硬盘拆下来,放到新的虚拟机上运行了~

五、测试开机

我们创建一个新的虚拟机,启动的时候会带一个硬盘,我们不用它的,删掉再把我们自己定义的硬盘加进去:

e768486e00242e47a3b39a30f528d72a.png

50bb7e52cca07e8ff3f77aa3d5d8e235.png

76096513c80e36aeb36038b37bafa3b9.png

95e8a60f363f03b6a5a64132382f0b64.png

e01623578a810fd665a4483f17381649.png

2e161d9f8d745d29f8798d7718c488f0.png

此时,我们做好的硬盘已经加进去了。我们可以试试能不能启动了,如果虚拟机可以正常开启,就说明我们的实验成功~

247c15622875ede22a7f34304cf670ed.png

0b51ca547a72611b45d82c6a887970d1.png

六、实现网络功能

b2d7eeea5a7fbe0266dcda2384bc733b.png

由于图片可能会看不清楚,现把代码标出如下:

#手动添加网卡驱动

insmod /lib64/e1000.ko

#查看ip

ip a

#添加IP地址

ifconfig eth0 192.168.252.62/24 up

#查看ip

ip a

由于复制命令的时候忘记复制ping了……所以我们用另一台机器来ping一下这个ip地址:

985e15dbda998459249a4dcb25d9a767.png

可以ping通~

至此,我们已经完成了私人订制Linux的全部操作,同时我们的自制Linux也可以联网啦~

总结:

近年来,因Linux其稳定、开源、免费、安全、高效的特点,发展迅猛,在服务器市场占有率超过80%,随着云计算的发展,Linux在未来服务器以及个人计算机领域仍是大势所趋。

06f1452d36cff200814d9afadb7b55d3.png

上面是我收集的一些视频和面试题资料。

对于软件测试的的朋友来说应该是最全面最完整的面试备战仓库,为了更好地整理每个模块,我也参考了很多网上的优质博文和项目,力求不漏掉每一个知识点,很多朋友靠着这些内容进行复习,拿到了BATJ等大厂的offer,这个仓库也已经帮助了很多的软件测试的学习者,希望也能帮助到你

关注我的微信公众号【程序员二黑】免费获取

b739ec46bb5c46d9c0aa4ce35ba1ea56.png

关于找一找教程网

本站文章仅代表作者观点,不代表本站立场,所有文章非营利性免费分享。

本站提供了软件编程、网站开发技术、服务器运维、人工智能等等IT技术文章,希望广大程序员努力学习,让我们用科技改变世界。

[跟大神一起15分钟制作一个属于自己的Linux操作系统!]http://www.zyiz.net/tech/detail-158591.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以教你使用 vi 对文本进行段落对齐。请按照以下步骤进行操作: 1. 打开终端并输入 vi 命令以打开 vi 编辑器:`vi filename.txt`(filename.txt 可以替换为你想要的文件名)。 2. 按 `i` 键进入插入模式,输入以下两段文本: ``` Linux is an operating system that was initially created as a hobby by a young student named Linus Torvalds at the University of Helsinki in Finland. He had an interest in Minix, a small UNIX system, and decided to develop a system that exceeded the Minix standards. He began his work in 1991 when he released version 0.02 and worked steadily until 1994 when version 1.0 of the Linux Kernel was released. Linux is widely considered to be the most secure operating system available. It is open-source software, meaning that anyone can access its source code and make changes to it. This has resulted in a large community of developers working to improve the software and fix any bugs or security vulnerabilities that are discovered. ``` 3. 按 `Esc` 键退出插入模式,然后将光标移动到第一行的开头。 4. 按 `Ctrl + V` 键进入可视块模式。 5. 使用方向键将可视块选中,直到选中两段文本的最长行。 6. 按 `Shift + I` 键进入插入模式,输入一个空格,然后按 `Esc` 键退出插入模式。这样,选中的文本就会向右移动一个空格,从而对齐起来了。 7. 按 `Esc` 键退出可视块模式。 8. 输入 `:wq` 命令保存并退出文件。 完成以上步骤后,你的两段文本就会被对齐。希望这对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值