自制一个简易linux

虚拟机添加一块新的硬盘(大小自定义)

在磁盘上创建一个基本分区作为/boot分区(大小200M足够)

再创建一个基本分区作为基本根分区(这里我指定给了5G大小)

然后给分区创建文件系统(注;swap分区要使用mkswap命令

blob.png

blob.png

]# mkdir /mnt/boot 创建挂载点(因为grub只识别/boot目录,所以要创建boot目录)

blob.png

]# mount /dev/sd1 /mnt/boot/ (将刚才创建的第一个分区挂载至/mnt/boot/目录下)

blob.png

]# grub-install –root-directory=/mnt /dev/sde (安装grub并且指明grub根在/mnt/下的boot,boot不指明,它会自己去找)

blob.png

可看到/mnt/boot/生成了grub,grub下生成了stage1,1.5,2等文件

自制一个简易linuxblob.png

]# cp /boot/vmlinuz-2.6.32-642.el6.x86_64 /mnt/boot/ 恢复内核文件

]# cp /boot/initramfs-2.6.32-642.el6.x86_64.img /mnt/boot/ 恢复initramfs文件

自制一个简易linuxblob.png

]# vim /mnt/boot/grub/grub.conf 编写grub配置文件,写入以下信息

defaullt=0 设定默认启动菜单项

timeout=5 菜单等待选择时间

title CentOS(minix.minix) 菜单名(以下为菜单项需要使用缩进)

root (hd0,0) 指明root为(hd0,0)

kernel /vmlinuz-2.6.32-642.el6.x86_64(指明内核文件) ro root=/dev/sda3 指明根文件系统(就是我们刚才分区出来的那块,因为要把这块硬盘放到另外一个系统上,所以刚才分区的/dev/sde3会在新系统上自动识别sda3)selinux=0 (关闭selinux) init=/bin/bash(指定系统的init为/bin/bash)

initrd /initramfs-2.6.32-642.el6.x86_64.img

blob.png

为根创建一级目录

[root@localhost ~]# mkdir /mnt/sysroot 创建根分区挂载点

[root@localhost ~]# mount /dev/sdb2 /mnt/sysroot/ 将根分区挂载

[root@localhost ~]# mkdir -pv /mnt/sysroot/{etc,lib,lib64,bin,sbin,tmp,var,usr,sys,proc,opt,home,root,boot,dev,mnt,media} 创建目录

blob.png编辑自动挂载配置文件

vim /mnt/sysroot/etc/fstab

/dev/sda1 /boot ext4 defaults 1 1

/dev/sda2  /    ext4 defaults 1 2

blob.png

复制bash和相关库文件

cp /bin/bash /mnt/sysroot/bin/

复制相关命令及相关库文件

如:ls,cat,vim,reboot,hostname等

blob.png

]# sync 同步磁盘数据

新建虚拟机使用现有磁盘

blob.png

blob.png

开机可运行



原创文章,作者:M20-1马星,如若转载,请注明出处:http://www.178linux.com/46164

(0)
M20-1马星M20-1马星
上一篇 2016-09-21
下一篇 2016-09-21

相关推荐

  • RAID介绍及软RAID实现

    RAID RAID:Redundant Arrays of Inexpensive(Independent)Disks1988年由加利福尼亚大学伯克利分校(University of California-Berkeley)“A Case for Redundant Arrays of Inexpensive Disks”。多个磁盘合成一个“阵列”来提供更好…

    Linux干货 2016-09-02
  • test

    test

    Linux干货 2016-08-08
  • 使用groupmems -l -g 组名选项遇到的问题

    groupmems -l -g 组名 显示的不是附加组的成员,而是显示的是/etc/group文件的最后一个字段的内容

    Linux干货 2017-11-23
  • linux网络属性管理

    Linux网络属性配置 计算机网络:TCP/IP:协议栈(使用)ISO,OSI:协议栈(学习) MAC:Media Access Control48bits:ICANN:24bits, 2^24地址块:2^24 网桥(bridge):MAC地址表静态指定:动态学习:根据原地址学习; 交换机(switch):多端口网桥; IP(Internet protoco…

    Linux干货 2017-10-14
  • https搭建

    https             http over ssl = https 443/tcp                 ssl: v3           &nb…

    Linux干货 2016-06-28
  • 非交互式添加分区

    非交互式添加分区 方法一 添加/deb/sdb 下的分区,其实位置为1到1000M,第二个分区位置为1001至3000M,位置千万不能指定错误 parted /dev/sdb mkpart primary 1 1000M parted /dev/sdb mkpart primary 1001 3000M 方法二 (1)将你要在parted命令行输入的命令实现…

    Linux干货 2017-04-24