Centos系统下载大全 | Redhat系统下载大全 | Windows2012系统下载大全 | Windows2008系统下载大全| CMS教程 | 网站地图 51运维网-专注Linux/Unix系统安全运维!
当前位置:51运维网 > 入门 > Linux入门 > 正文

Linux入门二 系统内核原理之初级系统裁剪

时间:2014-06-03 18:11 来源:未知 作者:www.51ou.com 阅读:

在上一篇开机启动顺序的博客里,自己混乱的大脑抗不住了。回头看自己写的博文,实在是难以入目。在随后深入了解系统内核原理之后,这里通过动手实验,在原有centos6.0基础上,裁剪出来一个简单的Linux系统,以动手带动对整个系统启动、系统内核的了解。

本文主要的实验环境:vmware9.0,host主机使用centos6.0系统,装载有一块硬盘sda;

主要的实验步骤:给host主机添加一块新的硬盘,分成两个分区,挂载至/mnt/boot,/mnt/sysroot。然后使用grub工作创建启动磁盘,将host的内核文件和initrd文件复制至/mnt/boot中来,配置grub.conf文件。在/sysroot下创建简单的文件系统(这里指的是文件目录结构);然后使用实现准备好的复制命令的脚本复制相关工具,如bash、cp、cat等命令还有基本的网卡模块,至/sysroot目录下;编写init脚本,实现系统开机后的简单初始化。最后,新建虚拟机,使用制作好的硬盘作为启动盘;主要过程见下图所示:

wKioL1MW-dTw1Gg1AAHMVIEK1Rg047.jpg

一、添加新硬盘、分区、格式化、挂载

1.给host主机(制作裁剪系统使用的模板系统,“母机”)添加一块硬盘。具体步骤这里不再赘述,选择默认配置即可,这里需要注意的是,要选择“作为单个文件存储虚拟磁盘”。

wKioL1MW5EXwdInBAAJaFogZb-w830.jpg

这里要注意选择好新建磁盘的物理路径,稍后我们新建虚拟机使用的就是这块新添加的磁盘。这里也一定能够要注意,虚拟磁盘后缀是vmdk。

wKioL1MW5GrySDUPAACvEvQq_Xo620.jpg

2.然后我们创建新的磁盘分区

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#创建/sdb1 100M
[root@station47 ~]# echo '
> n
> p
> 1
>
> +100M
> w ' | fdisk /dev/sdb
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').
Command (m for help): Command (m for help): Command action
   e   extended
   p   primary partition (1-4)
Partition number (1-4): First cylinder (1-2610, default 1): Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610):
Command (m for help): The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@station47 ~]#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#创建分区sdb2,大小2G
[root@station47 ~]# echo '
> n
> p
> 2
>
> +2G
> w ' | fdisk /dev/sdb
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').
Command (m for help): Command (m for help): Command action
   e   extended
   p   primary partition (1-4)
Partition number (1-4): First cylinder (15-2610, default 15): Using default value 15
Last cylinder, +cylinders or +size{K,M,G} (15-2610, default 2610):
Command (m for help): The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@station47 ~]#

3.格式化新建的分区

 

1
2
3
4
5
6
7
8
9
10
11
#格式化sdb1
[root@station47 ~]# mke2fs -t ext4 /dev/sdb1
mke2fs 1.41.12 (17-May-2010)
8192 blocks per group, 8192 fragments per group
200
...............................................
#格式化sdb2
[root@station47 ~]# mke2fs -t ext4 /dev/sdb2
mke2fs 1.41.12 (17-May-2010)
................................................
[root@station47 ~]#

4.在/mnt目录下挂载新分区

   在/mnt目录先创建目录boot,sysroot。分别挂载sdb1,sdb2至boot,sysroot.

1
2
3
4
5
6
7
8
[root@station47 mnt]# mount /dev/sdb1 /mnt/boot/
[root@station47 mnt]# mount /dev/sdb2 /mnt/sysroot/
[root@station47 mnt]# ls boot sysroot
boot:
lost+found
sysroot:
lost+found
[root@station47 mnt]#

二、安装grub

   制作启动磁盘最重要的步骤之一就是安装引导加载器至磁盘。这里使用最流行的grub。切换工作目录至/mnt/boot/,安装grub

1
2
3
4
5
6
7
8
9
10
11
#这里使用grub-install命令,root-directory指定bootloader安装的目录,
不需要写boot,至根目录即可。   /dev/sdb指定安装引导程序至哪个磁盘
[root@station47 boot]# grub-install --root-directory=/mnt /dev/sdb
Probing devices to guess BIOS drives. This may take a long time.
Installation finished. No error reported.
This is the contents of the device map /mnt/boot/grub/device.map.
Check if this is correct or not. If any of the lines is incorrect,
fix it and re-run the script `grub-install'.
(fd0)   /dev/fd0
(hd0)   /dev/sda
(hd1)   /dev/sdb
[root@station47 boot]#

感谢您对【51运维网 http://www.51ou.com/】的支持,我们为您免费提供《Linux入门二 系统内核原理之初级系统裁剪》技术文章,《Linux入门二 系统内核原理之初级系统裁剪》详细使用和说明,有时《Linux入门二 系统内核原理之初级系统裁剪》可能不完善、敬请谅解!如果《Linux入门二 系统内核原理之初级系统裁剪》有错误请给我们留言,我们将尽快修复文章错误,如果您觉得本站不错,请分享给周围的朋友!谢谢!

顶一下
(2)
100%
踩一下
(0)
0%
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
验证码:点击我更换图片