自制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 14:41
下一篇 2018-05-11 15:50

相关推荐

  • 第一周作业–20180514

    第一周作业–20180514

    2018-05-14
  • rpm包管理

    相关知识 接口 API:二进制接口 ABI:应用层接口, 包的组成: 二进制文件;库文件;配置文件;帮助文档 程序包管理器 debian: deb,dpt apt-agt包管理前段工具 rehat:rpm;rpm yum包管理前段工具 fedora dnf包管理前段工具 安装过的rpm包数据库 /var/lib/rpm/* 管理查看二进制程序依赖的库文件 l…

    Linux笔记 2018-04-22
  • 喜欢上find

    喜欢上findfind :查找目录下的文件。find 命令其实很好记,会用了,那简直太好玩太方便了-newer查找更改时间比指定文件新的文件-type 按类型查找 (d f l s b c p )D-name 按文件名查找-mtime 按修改时间查找( +2 -2 2)-size 按文件大小查找-perm 按文件权限查找-user 按文件属主来查找-nous…

    2018-04-18
  • 创建配置格式文件的格式 C语言源代码安装三步骤 yum

    创建配置文件的格式: [base] name= centos cdrom mirrorlist=file:///root/baselist gpgkey=file:///mnt/cdrom/rpm-gpg-key-centos-7     [epel] name=epel baseurl=https://mirrors aliyun.co…

    Linux笔记 2018-04-22
  • 第二周

    反向单引号 ` `:执行能力强,可以执行命令 [等价于$()]单引号 ‘ ’:只显示字符双引号 “ ”:识别变量,不识别命令花括号{ }: 里面内容互相组合 打印重复字符串的简化形式echo file{1,3,5} 显示为file1.3.5rm -f file{1,3,5} 删除file1.3.5echo file{1..10} 显示为file1&#8230…

    Linux笔记 2018-07-29
  • 对正则表达式,VIM的基本命令的操作,SHELL编程的基本格式等的一些见解。

    第一 正则表达式,第二 VIM的具体适应,第三 shell编程的基本格式跟规范!

    Linux笔记 2018-04-08