linux操作系统命令编译文件系统,编译linux内核 形成可运行的自己的linux系统

开始学习linux,老师说可以建立一个自己的linux操作系统。感觉很神奇。

开始的时候就是看了些资料。说的是通过livecd(linux from scratch),来构建自己的linux系统。记得那份资料大楷有六十来页,自己跟着做了大楷一半,出了无数的错,说到底还是兼容性,版本的问题。这个livecd是通过构建新的编译工具链来构建。对于自己这个初学者来说还是太麻烦了。其实这些工具链其实可以在一些发行版linux找到。自己用的比如(centos)。后来就选择另外的构建方法:交叉编译。

这有目标机,主机的区分。大楷什么意思也不用太仔细说,就是一个机器编译,在另一个机器上执行。调试的话,可以选择虚拟机来调试。

能够运行的linux最基本的的两个东西:内核,文件系统(选择的是busybox-1.21.0)。

大楷思路:有两种方法:

1把内核的bzimage和busybox中的文件系统(initrd)打包成iso文件(当然还要加载grub)。形成的xx——linux.iso。可以用虚拟机打开调试。

有篇文章写的非常好,开始自己做的时候都是根据这个步骤弄的。搜索::基于Linux源代码及Busybox源代码制作精简可启动内核镜像方法

2直接把文件系统编译进内核形成bzimage,然后用grub加载就可以了。

下面就介绍第二种方法:

步骤:

1,下载linux内核源代码,(最好是最新版本的,);我选择的是linux-3.13.5 。放在主机(centos)上

0818b9ca8b590ca3270a3433284dd417.png

2 ,因为是把文件系统编进内核。所以先编译busybox'。

2.1 :下载busybox,busybox-1.21.0.tar.bz2

2.2 :拷贝到centos(主机)中,然后解压。命令 tar -xyzf

2.3 : 在解压目录运行命令:make menuconfig  注:选择静态编译。Busybox Settings –> Build Options –> Build Busybox as a static binary

0818b9ca8b590ca3270a3433284dd417.png

2.4:编译,命令:make  注: 最好还是选择编译的目的文件夹,是为了不污染源文件。可以选择 make后面跟参数 O=/dir。

2.5 :  安装,命令:make install  .安装完成后会形成一个_install的文件夹。

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

2.6:这步就是配置形成_install文件夹里面的一些东西。因为在上面提到的那个搜索出的文章里面有详细的说明,就不详细阐述了。注:在_install中运行这句shell是非常重要的。ln -sv ./bin/busybox init   因为不加的情况下后面在启动系统的时候会出现这种情况

0818b9ca8b590ca3270a3433284dd417.png

3,编译linux内核:

3.1 :make i386_defconfig (这个事自己选择32位(make i386——defconfig)还是64位(x86_64_defconfig));

3.2 :make menuconfig (配置菜单,)注:可能在后面出现有些错误,简单的方法就是在运行make menconfig后出现的菜单项中删除出现错误的选项。

注:因为自己为了简单就直接把文件系统编译到bzImage里面。所以这里就需要文件系统(选择简单的(busybox):编译busybox后面再说。)

3.2.1  在menuconfig 里面可以选择选择自己编译的文件系统。   下面两个是必须的。

3.2.2 :General Setup –> Initial RAM filesystem and RAM disk support

3.2.2    General Setup –> Initial RAM filesystem and RAM disk support后面选择刚才我们编译形成的_install 的路径

3.3编译

make

然后找到./arch/x86/boot/目录下的bzImage 。这个就包含了需要的文件系统和内核。

4,用grub启动

因为开始自己下载了livecd。就可以直接在livecd里面启动。因为livecd里面配置了sshd服务。可以通过这个考到livecd里面。然后更改grub配置

最后reboot启动的就是自己构建的linux系统。下面是自己创建的一些步骤:

4.1:进入livecd系统。

mkdir boot

mkdir boot/grub

mount dev/hda1 /boot

cp /usr/lib/grub/* /boot/grub/ -rf

cp /root/bzImage /boot/grub  注:我上传的bzimage在root目录下总之是吧bzimage考在上述文件夹里面。

vi grub.conf

输入grub

root  (hd0)     //第一个分区

setup             //启动

重启界面出现:

输入 kernel /bzImage

boot

0818b9ca8b590ca3270a3433284dd417.png

最终打开的就是我们自己构建的linux系统。

0818b9ca8b590ca3270a3433284dd417.png





  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值