本例用红帽5.8在虚拟机中进行…

1、准备工作

首先为虚拟机增加一块硬盘(这里硬盘名为hda),对硬盘进行分区,一个作为boot分区一个作为root分区。

格式化并创建文件系统

# mke2fs -j /dev/hda1

# mke2fs -j /dev/hda2  # 为hda磁盘创建ext3的文件系统

挂载

新建两个目录,一个挂载boot分区一个挂载root分区

# mkdir -pv linux/{boot,root} # 创建目录

# mount /dev/hda1 linux/boot # 挂载hda1到linux/boot下

# mount /dev/hda2 linux/root # 挂载hda2到linux/root下

2、开始创建

我们首先要做的是安装grub和内核以及ini

# grub-install --root-directory=linux /dev/hda # 安装grub到linux下,它会自动安装到boot目录下

# cd linux/boot  # 切换到boot目录下

# cp /boot/vmlinuz-2.6.18-308.el5 ./ # 复制内核到当前目录下

# cd /  # 切换到根目录下

# mkdir initdd  # 创建目录initdd

# cd initdd # 切换到initdd目录下

# zcat /boot/initrd-2.6.18-308.el5.img ./ | cpio -id  # 将boot目录下的initrd*文件展开到当前目录下

# vim init  # 编辑init文件使之适应自己的磁盘和文件系统

# find . | cpio -o -H newc --quiet | gzip -9 > /root/linux/boot/initrd.gz # 归档复制并压缩当前目录下的所有内容保存至linux下的boot目录中,并命名为initrd.gz

# cd /root/linux/boot  # 切换到linux下的boot目录下

# vim grub/grub.conf  # 在grub目录下创建grub.conf文件并编辑,下面是文件内容

default=0

timeout=3

title Redhat Linux Welcome

root (hd0,0)

kernel /vmlinuz-2.6.18-308.el5

initrd /initrd.gz

# cd ../root  # 切换到linux下的root目录下

    # mkdir -pv etc/rc.d/init.d bin sbin proc sys dev lib root mnt media var/{log,run,lock/subsys,tmp} usr/{bin,sbin,local} tmp home opt boot   # 

# vim etc/inittab  # 创建并编辑inittab文件,下面是内容

id:3:initdefault:

si::sysinit:/etc/rc.d/rc.sysinit

# vim etc/rc.d/rc.sysinit  # 在etc下rc.d下创建并编辑rc.sysinit文件

#!/bin/bash

#

echo " "

/bin/bash

# chmod +x etc/rc.d/rc.sysinit  # 给rc.sysinit文件赋予执行权限

# cp /sbin/init sbin/ # 复制init到对应的目录下

# cp /bin/bash bin/ # 复制bash到对应目录下

# ldd /sbin/init     # 查看init的依赖文件

将init和bash的依赖文件依次复制过来,这样一个初具雏形的linux就已经出来了。保存好文件将此磁盘放到别的主机上就可以启动了,只不过现在没有什么服务,也没有什么命令可以执行……

下面是一个复制命令及其相关文件的脚本,只需输入要复制的命令即可,复制好后小linux就可以执行了。

#!/bin/bash

#

#  cp command go smallLinux

#

DEST=/root/linux/root

libcp() {

LIBPATH=${1%/*}

[ ! -d $DEST$LIBPATH ] && mkdir -p $DEST$LIBPATH

[ ! -e $DEST${1} ] && cp $1 $DEST$LIBPATH && echo "copy lib $1 finished."

}

bincp() {

CMDPATH=${1%/*}

[ ! -d $DEST$CMDPATH ] && mkdir -p $DEST$CMDPATH

[ ! -e $DEST${1} ] && cp $1 $DEST$CMDPATH

for LIB in  `ldd $1 | grep -o "/.*lib\(64\)\{0,1\}/[^[:space:]]\{1,\}"`; do

libcp $LIB

done

}

read -p "Your command: " CMD

until [ $CMD == 'q' ]; do

! which $CMD && echo "Wrong command" && read -p "Input again:" CMD && continue

COMMAND=` which $CMD | grep -v "^alias" | grep -o "[^[:space:]]\{1,\}"`

bincp $COMMAND

echo "copy $COMMAND finished."

read -p "Continue: " CMD

done

转载于:https://blog.51cto.com/axtl1314/1167986

看完你自己也能创建个小Linux相关推荐

  1. 看完吊打面试官!微信小程序趋势及前景,复习指南

    这篇文章主要介绍了20道经典Handler题及答案解析,文中通过示例代码介绍的非常详细,对大家的学习或者面试复习具有一定的参考学习价值,内容过多可以先收藏慢慢观看,需要的朋友们下面随着小编来一起学习学 ...

  2. lisp 任意点 曲线距离_数学篇|看完这篇,秒杀所有圆锥曲线小技巧

    今天为大家带来的是小袁老师为大家总结的圆锥曲线题目的解题技巧,有例题有讲解! 善用几何性质 圆锥曲线的几何性质可以说是基础中的基础,它以及它引申出的焦点三角形面积公式在题目中也是被广泛地用到. 首先我 ...

  3. 计算机考试大题电脑阅卷吗,看完电脑阅卷的“内幕”,你还会让这样答卷吗?认真看完最少多考20分!...

    原标题:看完电脑阅卷的"内幕",你还会让这样答卷吗?认真看完最少多考20分! 在小编的印象中,每年高考成绩出来那天,总有人觉得委屈,感觉实际分数不如自己考完对答案得出的分数高. 那 ...

  4. pdf怎么转换成ppt呢?看完每个人都会

    PPT和pdf是几乎每个上班族每天都会接触到的电脑文件,但因为pdf文件不能随意编辑修改,所以在使用pdf文件时,格式转换是不可避免的.那么碰到需要转换文件时我们该怎么办呢?其实找对方法PDF转换成P ...

  5. 手机节省流量的小妙招,2种方法都能够节省不少,看完记得分享哦

    手机节省流量的小妙招,2种方法都能够节省不少,看完记得分享哦 我们在使用手机时,是不是会遇到手机流量不够用的情况,没有流量无法上网的日子,真的还是很难受的,那么今天小酱就和大家分享两种节省流量的小妙招 ...

  6. 腾讯面试题:创建索引时,你会怎么考虑呢?(看完你就能和面试官谈人生了)

    title: 腾讯面试题:创建索引时,你会怎么考虑呢?(看完你就能和面试官谈人生了) tags: 面试常见题 腾讯面试题:创建索引时,你会怎么考虑呢?(看完你就能和面试官谈人生了) 腾讯面试题:创建索 ...

  7. 创建父需求子需求构建需求树_还不知道B+树 ?看完,别再问我什么是B+树 了

    前言 每当我们执行某个 SQL 发现很慢时,都会下意识地反应是否加了索引,那么大家是否有想过加了索引为啥会使数据查找更快呢,索引的底层一般又是用什么结构存储的呢,相信大家看了标题已经有答案了,没错!B ...

  8. Spring经常出现的报错原因,看完保证你技术涨一层!

    在我们开发中经常会遇到很多关于Spring启动报错的问题,我司在整合几十个老系统的时候也经常出现这样的问题,而这样的场景在大一点的公司会经常出现,比如给你个任务,你整合下几个遗留系统,有几十个甚至几百 ...

  9. 深度剖析:Redis分布式锁到底安全吗?看完这篇文章彻底懂了!

    ‍‍‍‍‍‍‍‍‍‍‍‍阅读本文大约需要 20 分钟. 大家好,我是 Kaito. 这篇文章我想和你聊一聊,关于 Redis 分布式锁的「安全性」问题. Redis 分布式锁的话题,很多文章已经写烂了 ...

最新文章

  1. Python 连接Sql Server数据库 MSSql
  2. Linux中新建用户用不了sudo命令问题:rootr is not in the sudoers file.This incident will be reported解决
  3. !亲测有效!质量最高的pr模板网站,有点小贵罢了
  4. Linux 免密码sudo
  5. 干不掉的钉钉:从哪来,往哪去?
  6. 了解一下HTTP1.1 Pipelining技术
  7. apache spark_Apache Spark中的自定义日志
  8. 4阶范德蒙德行列式例题_行列式的性质和计算问题
  9. [react] 描述下在react中无状态组件和有状态组件的区别是什么?
  10. 计算机指令int,汇编入门学习笔记 (十二)—— int指令、端口
  11. 怎么跟踪php代码,第九节 PHP 跟踪调试代码 XDebug
  12. 【bzoj2806】 Ctsc2012—Cheat
  13. C#LeetCode刷题之#557-反转字符串中的单词 III(Reverse Words in a String III)
  14. TLD Tracker
  15. bankeralgorithm.jar中没有主清单属性_怀旧服:迅击指环和其拉之怒属性一致,为何狂暴战用迅击更好...
  16. 大学计算机相关理论,大学计算机理论基础 大学计算机基础理论题.doc
  17. Mysql--mysqldump命令 备份数据库
  18. ***编程DIY (Delphi版) - 第2篇 单实例运行
  19. 面试题 猜颜色球游戏
  20. 什么是基金,如何购买(转)

热门文章

  1. 20210422:力扣第237周周赛题解记录(上)
  2. java线程本地变量_Java并发编程示例(九):本地线程变量的使用
  3. access后台链接mysql_Access为后台数据库的网站统计系统
  4. layui模板引擎laytpl判断为null或为空
  5. Linux下Grub命令配置详解
  6. VB移动没有标题的窗体
  7. 活动 | 日立·INNOWAY “引领变革 启迪未来” 创意马拉松
  8. 便宜可靠的激光雷达可能要来了!Luminar关键部件成本降到3美元
  9. react离开页面,自定义弹框拦截,路由拦截
  10. Oracle收购Talari,第一家SD-WAN公有云提供商出现