手把手系列(三)教你自制简单Linux系统

CentOS启动相关最重要的几个文件有:内核vmlinuz文件、虚拟文件系统initramfs文件、grub文件以

及init启动程序,围绕这几个文件,我们来制作一个能够简单启动的自制Linux系统

实验思路:

CentOS6的启动流程如下

1.加载BIOS的硬件信息,进行POST加电自检

2.读取第一个启动设备MBR的引导加载程序(grub)的启动信息

3.加载核心操作系统的核心信息,核心开始解压缩,并尝试驱动所有的硬件设备

4.核心执行init程序,并获取默认的运行信息

5.init程序执行/etc/rc.d/rc.sysinit文件

6.启动核心的外挂模块

7.init执行运行的各个批处理文件(scripts)

8.init执行/etc/rc.d/rc.local

9.执行/bin/login程序,等待用户登录

10.登录之后开始以Shell控制主机

其中与启动相关最重要的几个文件有:内核vmlinuz文件、虚拟文件系统initramfs文件、grub文件以

及init启动程序,接下来就围绕这几个重要文件,来制作一个能够简单启动的自制Linux系统

 

准备环境:

CentOS6虚拟服务器1台,准备一个硬盘或者U盘,本实验我们以一块20G的虚拟硬盘为例制作一个简单的

Linux系统

u=1560722224,2576059153&fm=27&gp=0

 

具体步骤:

第一步:针对新增加的20G硬盘创建两个分区dev/sdb1,dev/sdb2

fdisk /dev/sdb

fdisk

第二步:创建文件系统,将/dev/sdb1,/dev/sdb2两个分区文件系统设置为ext4格式

mkfs.ext4  /dev/sdb1

mkfs.ext4  /dev/sdb2

做文件系统

第三步:挂载/boot目录

mkdir /mnt/boot                                此处挂载子目录必须为boot

mount /dev/sdb1 /mnt/boot

挂载boot

第四步:安装gurb

grub-install –root-director=/mnt /dev/sdb

hexdump -C /dev/sdb -n 512 -v                 查看一阶段是否创建成功,446字节已生成

ls /mnt/boot                                查看二阶段是否创建成功,grub目录已生成

查看

第五步:拷贝内核vmlinuz文件及虚拟文件系统initramfs文件

cp /boot/vmlinuz-VERSION /mnt/boot/vmlinuz

cp /boot/initramfs-VERSION.img /mnt/boot/initramfs.img

内核文件

第六步:设置grub.conf文件

vim /grub.conf

default=0

timeout=5

title linux

kernel /vmlinuz-VERSION  root=/dev/sda2 init=/bin/bash

initrd /initramfs.img

vim

第七步:挂载根目录

mkdir /mnt/rootfs

mount /dev/sdb2 /mnt/rootfs

挂载根目录

第八步:复制相关命令和库文件

如:ifconfig,insmod,ping,mount,ls cat,df,lsblk,blkid等

 

第九步:准备根目录下必要目录

mkdir /mnt/rootfs/{dev,etc,proco,sys,usr,var,lib,mnt.home,root,tmp,lib64} -v

sync;sync;sync; 确保写入硬盘

必要目录

第十步:安装必要的模块,如网络模块等

网络模块

第十一步:关机此服务器,并将20G硬盘安装到一台无硬盘启动的虚拟机服务器上

C4]~MJXP350W{7KIN`G88G0

我们看到系统已经可以正常启动了,一台可以快速、简单完成启动的Linux系统就制作完成了

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

(3)
wangxczwangxcz
上一篇 2018-05-14 18:27
下一篇 2018-05-14 20:33

相关推荐

  • CentOS系统Shell编程语言基础之Bash的基础特性

    bash的基础特性之命令历史: 命令历史:shell进程会在其会话中保存此前用户提交执行过的命令~]#history定制history的功能,可通过环境变量实现HISTSIZE:shell进程可保留的命令历史的条数HISTFILE:持久保存命令历史的文件, “.bash_history”HISTFILESIZE:命令历史文件的大小 命令用法: history…

    Linux笔记 2018-06-27
  • Linux故障修复

    软件包故障一、库文件丢失破坏:rm –rf /lib64/libacl.so.1故障状态:依赖这个库的命令不可用;系统不可启动 修复:如果丢失的是软链接文件;方法:1、进入救援模式2、创建软件链接cd /mnt/sysimageln –s libc.2-17.so.6 libc.so.6如果删除的是文件,只能从其它主机拷贝一份到本机二、rpm故障1、rpm文…

    2018-05-17
  • 源码的编译和安装

    以httpd的安装为例,详细讲解了编译安装的原理

    2018-04-21
  • yum仓库的建立

    配置文件 1手动生成 /etc/yum.repos.d/FILE.repo [NAME] name=NAME baseurl=… gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 enable=1 2直接复制 http://mirrors.aliyun.com/repo/   /*直接下载阿里…

    Linux笔记 2018-04-29
  • 第五周 软件包管理命令、制定定时任务和sed命令介绍

    1. RPM包管理 1.1 RPM简介 RPM类似于Windows系统中.exe的软件安装程序,用户可以使用它自行安装和管理Linux上的应用程序和系统工具; RPM软件包文件都是以.rpm为后缀,一般采用这样的命名格式:软件包名称 – 版本号 – 修正版 . 硬件平台 . rpm。 1.2 RPM命令的使用方法 查询:rpm {-q…

    2018-07-02
  • Linux-vim

    vim简介 vi: Visual Interface,文本编辑器 文本:ASCII, Unicode 文本编辑种类: 行编辑器: sed 全屏编辑器:nano, vi vim – Vi Improved 其他编辑器: gedit 一个简单的图形编辑器 gvim 一个Vim编辑器的图形版本   打开文件 # vim [OPTION]&#8…

    2018-04-08