CentOS 系统启动流程(四)

自制linux系统

一个完整系统所需要所需要的文件:

内核文件 vmlinuz
initrd文件  initramfs
根目录下所需要的目录:etc usr lib lib64 opt tmp media mnt 等
grub目录以及grub.conf配置文件

(1)在宿主机上添加一块硬盘并分区格式化

[root@localhost~]#echo "- - -" >/sys/class/scsi_host/host2/scan
[root@localhost~]#lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0     11:0    1  3.7G  0 rom  /media/cdrom
sda      8:0    0  200G  0 disk 
├─sda1   8:1    0 1000M  0 part /boot
├─sda2   8:2    0 48.8G  0 part /
├─sda3   8:3    0 48.8G  0 part 
├─sda4   8:4    0    1K  0 part 
├─sda5   8:5    0    2G  0 part [SWAP]
└─sda6   8:6    0  200M  0 part 
sdb      8:16   0   20G  0 disk 

这里写图片描述

[root@localhost~]#fdisk -l /dev/sdb #查看分区

这里写图片描述

[root@localhost~]#mke2fs -t ext4 /dev/sdb1   #对第一块分区格式化
[root@localhost~]#mke2fs -t ext4 /dev/sdb2 #对第二块分区格式化
[root@localhost~]#mke2fs -t ext4 /dev/sdb3 #对第三块分区格式化

[root@localhost~]#lsblk #查看分区结果
sdb      8:16   0   20G  0 disk 
├─sdb1   8:17   0    1G  0 part 
├─sdb2   8:18   0    2G  0 part 
└─sdb3   8:19   0   17G  0 part 

(2)创建挂载点并挂载

[root@localhost~]#mkdir /mnt/boot
[root@localhost~]#mkdir /mnt/root
[root@localhost~]#mount /dev/sdb1 /mnt/boot/
[root@localhost~]#mount /dev/sdb2 /mnt/root/
[root@localhost~]#mount
/dev/sda2 on / type ext4 (rw)
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/sr0 on /media/cdrom type iso9660 (ro)
/dev/sdb1 on /mnt/boot type ext4 (rw)
/dev/sdb2 on /mnt/root type ext4 (rw)

(3)复制现有内核中的文件和initrd文件在/mnt/boot目录下

[root@localhost/mnt/boot]#cp /boot/vmlinuz-2.6.32-696.el6.x86_64 /boot/initramfs-2.6.32-696.el6.x86_64.img .
[root@localhost/mnt/boot]#ls
initramfs-2.6.32-696.el6.x86_64.img  lost+found  vmlinuz-2.6.32-696.el6.x86_64

(4)生成grub/目录

[root@localhost/mnt/boot]#grub-install --root-directory=/mnt /dev/sdb
[root@localhost/mnt/boot]#ls
grub                                 lost+found
initramfs-2.6.32-696.el6.x86_64.img  vmlinuz-2.6.32-696.el6.x86_64

注意:–root-directory指定root必须是要安装boot的父目录。
(4)编辑grub.conf文件

 [root@localhost/mnt/boot/grub]#vim grub.conf
 default=0
timeout=5
title custom linux
    root(hd0,0)
    kernel /initramfs-2.6.32-696.el6.x86_64.img root=/dev/sda2 selinux=0 init=/bin/bash
    initrd /vmlinuz-2.6.32-696.el6.x86_64

注意:自制linux系统,由于没有init文件所有我们这里设置bash为init。
这里写图片描述

(5)创建根下所需要的目录

[root@localhost/mnt/root]#mkdir etc lib lib64 sbin bin tmp var usr sys proc opt home root dev mnt media
[root@localhost/mnt/root]#tree
.
├── bin
├── dev
├── etc
├── home
├── lib
├── lib64
├── media
├── mnt
├── opt
├── proc
├── root
├── sbin
├── sys
├── tmp
├── usr
└── var

(6)复制所需要的命令

创建脚本文件,复制命令

(7)新建一台虚拟机,并选择宿主机上那块硬盘,重启,测试是否能成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值