CentOS 系统启动流程(四)
来源:互联网 发布:职业经理人 知乎 编辑:程序博客网 时间:2024/05/16 11:20
自制linux系统
一个完整系统所需要所需要的文件:
内核文件 vmlinuzinitrd文件 initramfs根目录下所需要的目录:etc usr lib lib64 opt tmp media mnt 等grub目录以及grub.conf配置文件
(1)在宿主机上添加一块硬盘并分区格式化
[root@localhost~]#echo "- - -" >/sys/class/scsi_host/host2/scan[root@localhost~]#lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTsr0 11:0 1 3.7G 0 rom /media/cdromsda 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]#lsinitramfs-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]#lsgrub lost+foundinitramfs-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=0timeout=5title 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)新建一台虚拟机,并选择宿主机上那块硬盘,重启,测试是否能成功。
阅读全文
0 0
- CentOS 系统启动流程(四)
- CentOS系统启动流程(二)
- CentOS系统启动流程详解(一)
- CentOS系统启动流程
- CentOS 系统启动流程
- CentOS 系统启动流程
- CentOS系统启动流程
- Android系统启动流程(四)Launcher启动过程与系统启动流程
- Android系统启动流程(四)Launcher启动过程与系统启动流程
- 系统启动流程(三)
- 系统启动流程(五)
- 系统启动流程(六)
- 系统启动流程(七)
- CentOS系统启动流程及GRUB文件说明
- CentOS系统启动流程和系统初始化
- CentOS系统启动流程及GRUB文件说明
- Android系统启动流程 四--init进程
- linux系统启动(bootstrap)流程
- Tensorflow学习笔记——占位符和feed_dict(二)
- 解决Android SDK Manager 无法更新下载SDK版本问题
- 字符串置换-lintcode-c++
- bzoj2301 [HAOI2011]Problem b
- ZigZag Conversion
- CentOS 系统启动流程(四)
- bzoj2743 [HEOI2012]采花
- css3-划过div放大突出效果
- java多线程(5)之线程池概念理解
- Raspberry Pi 3 Model B snappy Ubuntu core安装及使用
- 持续集成进阶篇
- collections.nametuple的用法
- Coprime HDU
- 我的Java RCP 编程之路之第一站