自制mini的Linux系统

如何打造一个小的Linux系统。这个可以当做一个很简单的启动盘,并使它能够成功启动且能有简单的shell环境。

 步骤概略:

      (1)划分一块磁盘,用来装系统

(2)给硬盘划分至少两个分区,一个为boot引导分区,一个为/根分区

(3)为分区创建文件系统,并挂载到两个不同目录

(4)在挂载boot的分区创建grub引导目录

(5)复制内核vmlinux与initrd文件到boot目录下,然后根据文件编写grub下的引导配置文件

(6)创建根文件系统

(7)移植bash等命令到根目录下

(8)启动测试

(一)划分磁盘

制作Linux系统,就需要有硬盘来装载它。所以我们就需要划分一块硬盘来装制作的Linux文件系统。这个硬盘不需要太大,这里我就划分一个20G的硬盘来装载它吧!先用lsblk来看看这个分区

自制mini的Linux系统

(二)划分分区

既然是一个mini系统,那这里就给它划分两个分区吧!一个boot用来引导内核启动,一个为真正的根分区

创建分区用fdisk这个命令、

自制mini的Linux系统

(三)创建文件系统

分区创建完成,但是想要它可以装文件就要为它创建文件系统。那就把它创建为ext4的文件系统吧!

mkfs  -t  ext4  /dev/sdb1

mkfs  -t  ext4  /dev/sdb2

完成这两步后,分区已经创建完成。就可以把它们挂载到指定目录下了

自制mini的Linux系统

(四)创建grub引导目录

Linux的启动需要加载内核,而内核的加载就需要grub里的配置文件来定义

grub-install  –root-directory=/mnt/  /dev/sdb(这条命令就是用来生成grub引导文件的,它会根据CentOS6的内核文件来生成grub。然后把生成的文件指定到目标磁盘上)

自制mini的Linux系统

(五)复制内核与initrd到boot目录下

自制mini的Linux系统

复制完成后就可以来编写grub下的引导配置文件了,它会根据配置文件来逐步引导各个程序的启动。如下图:1、所表示这个系统的默认的启动内核,0就是我们所制作的这个内核。2、表示如果在三秒内未指定为哪个内核,则系统就会启动默认内核。3、表示内核的名字。4、指明启动时的硬盘为哪一块硬盘。5、kernel 指明内核文件放置的相对位置,root 指明根目录的位置,selinux 表示把selinux这个安全策略关闭,init 表示我们要用的shell环境,这里我们用的是bash。

注意:编写时需要注意要把根目录的分区名更改为sda,因为当硬盘去引导系统时系统里只有一块硬盘,它会被自动识别为/dev/sda

自制mini的Linux系统

(六)创建根文件系统

      启动分区准备好后就需要准备根分区了。这个分区的作用就是整个系统的真正的分区,整个系统的配置文件、数据都会放置在这个分区内。所以我们就需要在这个分区内创建目录来分别存放各个数据文件。而有些系统所必须的文件目录我们就可以在这里创建完毕。
      创建目录的命令如下:
        cd  /mnt/sysroot
        mkdir -pv {proc,dev,lib,bin,sbin,home,root,etc/rc.d,usr/{lib,bin,sbin},var/{log,run,lock},tmp,mnt,sys}

(七)移植命令到根下

系统创建完成后还需要复制一些基本的命令到根下,如bash、ls、cat、cd、hostname、vim等以这些命令来完成某些操作,实现基本的shell环境。所以我们需要编写一个脚本完成这些命令的配置文件的复制以及所依赖的库文件的复制。

下面这个脚本就可以帮我们完成这个任务

自制mini的Linux系统

这些命令复制完成后。到这里一个mini的Linux系统已经基本创建完成了。为了看它是否能启动我们可以先切根看看能否切进这个系统里去

chroot  /mnt/sysroot  (如果切入成功,则说明系统已经基本创建完成)

    (八)启动测试
        最后,我们就需要把硬盘卸载下来。然后用虚拟机用这块硬盘来重新启动,启动成功后执行复制的几个简单的命令证明制作成功。

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/98134

(1)
李登峰李登峰
上一篇 2018-05-11
下一篇 2018-05-11

相关推荐

  • 网络管理基础

    IP地址由网络ID和主机ID组成 A类:0 000 0000 – 0 111 1111:1-127 网络数:126 每个网络中的主机数2^ 24-2=16777214 B类:10 00 0000 – 10 11 1111:128-191 网络数:2^ 14=16384 每个网络中的主机数:2^ 16–2=65534 C类:100 0 …

    2018-04-01
  • Linux系统学习-第四周

    Linux系统学习

    Linux笔记 2018-06-03
  • 软件包的管理课程

    软件运行和编译  ABI:Application Binary Interface Windows与Linux不兼容 ELF(Executable and Linkable Format) PE(Portable Executable) 库级别的虚拟化: Linux: WINE Windows: Cygwin  API:Application Progr…

    2018-04-29
  • 向CA申请证书

     实验向CA申请证书 步骤: 建立Root CA 1)生成私钥 2)自签名证书 2.用户或服务器 1)生成私钥 2)生成证书申请文件 3)将申请文件发给CA 3.CA颁发证书 4.证书发送给客户端 5.应用软件使用证书 如:centos7当服务器,centos6客户端 ,即centos6向centos7申请证书 第一:建立根CA 生成私钥的文件放在哪,文件名…

    2018-05-19
  • 详细说明进行管理工具htop、vmstat等相关命令,并举例

    htop命令: 选项: -d #:指定延迟时间间隔 -u UserName:仅显示指定用户的进程 -s COLUME:以指定字段进行排序 htop -u root -d 10 PID:进程ID USER:用户名 PRI:优先级 NI:nice值 VIRT:Size in memory of the total program size RES:所使用的物理内…

    2018-06-15
  • 第七周作业

    1、简述linux操作系统启动流程 inux系统启动流程大致是这样的: BIOS(Boot Sequence) –> MBR(GRUB) –> Kernel(ramdisk) –> rootfs –> /sbin/init(/etc/inittab) BIOS 主板在接通电源后,BIOS…

    2018-06-29