制作小Linux

简介:

  Linux的整体组成有很多,但是我们只要能掌握核心的那部分,就可以自己制作出一个Linux来,在前面有讲到,一个Linux的启动离不开引导程序与内核,引导程序去找到内核,并将内核放入RAM内存当中,内核,需对设备进行驱动,以只读的方式挂载根文件系统,并执行/sbin/init;所以在制作小Linux时,我们最重要的就是把,/boot下的内核文件,以及ramdisk文件导入到小Linux所使用的硬盘中,在内核无法驱动其他设备时,调用ramdisk去驱动;再创建引导程序的grub;

  创建小Linux步骤

  1.为本已存在的Linux添加一块硬盘,在此硬盘上构造小Linux,随后,再把这块硬盘插入到一个新建的虚拟机当中;

  2.对硬盘进行分区fdisk /dev/devicename,需要两个主分区,以及一个交换分区,为其分别创建文件系统;

  3.在当前Linux环境下的,清空/mnt下的文件,并创建/mnt/boot,/mnt/sysroot,一个作为启动分区,一个作为小Linux的根分区;

  wKiom1mGZKPSAvZVAAANcfpboTQ415.jpg-wh_50

  4.将两个主分区,分别挂载到/mnt/boot,/mnt/sysroot下;将/boot目录下的内核核心文件,以及ramdisk文件复制到/mnt/boot下,init文件,复制的名字通常为initramfs.img需要加后缀;再在根目录/mnt/sysroot下创建正常“/”上需要具备的目录,如bin,sbin,lib,lib64,usr,proc,sys,home,dev,etc,mnt等;

  wKioL1mGZODD3GdmAAAmCxEJtWc322.jpg-wh_50

  5.将/bin/bash拷贝到/mnt/sysroot/bin中,并将其库文件复制到/mnt/sysroot/lib64中,作为小Linux的功能之一,按这样的步骤,可以拷贝许多命令进入小Linux中;

  6.建立grub引导程序,使用命令grub-install --root-directory=/mnt /dev/devicename,就会将grub这个文件创建在/mnt这个他认为的根目录下,因为boot启动程序我们建立在/mnt/boot,所以系统会将/mnt认为是根;

  7.创建完grub后,我们可以手动创建grub的启动配置文件grub.conf,也可以在将硬盘放入另一个新建的虚拟机后,在其grub命令行界面进行grub启动;在上述配置完成后,我们需要不断使用命令sync使其写入硬盘,未免其没写入,所以多执行几次;最后将当前虚拟机挂起;并将之前新建的进行配置的硬盘,放入另一个新建的虚拟机中;

  grub.conf配置文件

  

  (hd0,0)

  hd0:表示该系统的第一个硬盘;

  0:表示该系统的第#个硬盘下的第一个分区;

  ①手动书写grub配置文件

   default=0;设定默认启动菜单

   timeout=10;用户未作出选择时,系统会根据时间默认菜单对应的内核的超时时间;

   title Mylinux(1.0.0);设置菜单上的标题

      root (hd0,0);指定grub的根设备

      kernel /vmlinuz selinux=0 ro root=/dev/sda2 init=/bin/bash;调用的内核文件,调用的是我们之前复制内核到/mnt/boot下的内核名,关闭selinux,只读,根设备,是我们之前在现有的Linux下创建挂载根的那个设备,如是sdb2,在这个新的虚拟机上通常只有一个硬盘,对应的就是sda2

      initrd /initramfs.img;内核对应的ramdisk wKioL1mGZSahJFc_AAAqs6uqtH4948.jpg-wh_50

  ②在grub命令行界面启动 

  root (hd0,0);指定grub的根设备

  find (hd0,0);看是否能够查找到启动分区;

  kernel /vmlinuz selinux=0 ro root=/dev/sda2 init=/bin/bash;调用的内核文件,调用的是我们之前复制内核到/mnt/boot下的内核名,关闭selinux,只读,根设备,是我们之前在现有的Linux下创建挂载根的那个设备,如是sdb2,在这个新的虚拟机上通常只有一个硬盘,对应的就是sda2

  initrd /initramfs.img;内核对应的ramdisk文件

  boot;配置完毕,启动该Linux

 

  grub命令行配置:

  wKiom1mGZpfxyebzAABhf7jXFBs595.jpg-wh_50

  Linux启动前需要使用boot启动

  启动界面:

  wKiom1mGacfz--hvAAB3SdxM5GM137.jpg-wh_50



本文转自 wujunqi1996 51CTO博客,原文链接:http://blog.51cto.com/12480612/1953930

相关文章
|
Linux
Linux制作deb格式安装包教程
Linux制作deb格式安装包教程
819 0
|
Ubuntu Java Linux
alpine Linux与基于alpine制作JDK8镜像
Docker commit 命令 1.下载基础镜像 2.使用此基础镜像创建/启动/进入容器 3.在容器安装自己需要的软件 4.将保存配置完成的容器提交成镜像 语法如下 docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] OPTIONS说明: -a :提交的镜像作者; -c :使用Dockerfile指令来创建镜像; -m :提交时的说明文字; -p :在commit时,将容器暂停。 实例:将容器a404c6c174a2 保存为新的镜像,并添加提交人信息和说明
|
安全 Linux Windows
Linux科普扫盲系列(Linux启动安装U盘的制作)
Linux科普扫盲系列(Linux启动安装U盘的制作)
731 0
Linux科普扫盲系列(Linux启动安装U盘的制作)
|
缓存 Unix Linux
linux系统编程(三)gcc常用技巧与静态库与动态库制作
linux系统编程(三)gcc常用技巧与静态库与动态库制作
270 0
linux系统编程(三)gcc常用技巧与静态库与动态库制作
|
存储 Linux iOS开发
制作 Kali 可启动 USB 驱动器 (Linux)
制作 Kali 可启动 USB 驱动器 (Linux)
349 0
制作 Kali 可启动 USB 驱动器 (Linux)
|
存储 Java Linux
【系统】[Linux]CentOS 7之下载、制作U盘系统盘篇
【系统】[Linux]CentOS 7之下载、制作U盘系统盘篇
273 0
【系统】[Linux]CentOS 7之下载、制作U盘系统盘篇
|
Java Linux Windows
制作Linux启动jar文件脚本
在windows上的命令行可以使用java -jar的方式来启动jar程序,在Linux上该如何方便启动呢?
422 0
制作Linux启动jar文件脚本
|
Linux
使用Rufus制作LINUX启动安装U盘(成功)
使用Rufus制作LINUX启动安装U盘(成功)
732 0
使用Rufus制作LINUX启动安装U盘(成功)
|
Linux
使用UltraISO制作LINUX安装U盘(未成功)
使用UltraISO制作LINUX安装U盘(未成功)
153 0
使用UltraISO制作LINUX安装U盘(未成功)
|
Linux
全网首发:制作LINUX安装软件包,要处理哪些系统目录和文件(3)
全网首发:制作LINUX安装软件包,要处理哪些系统目录和文件(3)
95 0
下一篇
无影云桌面