硬盘运行微型linux,用Shell脚本实现自动化完成属于自己的微型Linux

用Shell脚本实现自动化完成属于自己的微型Linux

前面我写了如何通过宿主RedHat系统通过精简和调用以及修改的方式,打造一个完全属于自己的微型LInux!见

但是,很多人懒啊~~,所以我又写了写脚本,通过分步实现的方式。达到用一个脚本,完全的按照用户想要达到的目的安装一个属于自己的微型Linux。

那么下面我们来看如何实现:

实现过程分析:

1.分区,按照用户所选的盘,将其格式化,分区

2.挂载,按照用户设定的的分区好的盘分别挂载在我们宿主机的一个目录上。方便对微型linux进行编辑。

3.对微型Linux进行写入各项配置信息

4.将微型Linux中我们需要用到的Bash等命令放进去

5.放入内核,和启动必须加载的配置文件

6.对用户的硬盘安装引导程序。

好的~过程已经分析OK了,下面我们动手开始写吧!!!

第一步:实现自动分区!!

我们将问题分开来看,于是成了这样:

写一个脚本,实现将一个硬盘中原有分区信息全部删除,并重新将其分为三个区:

1、提示用户指定要操作的磁盘;如果此硬盘中有分区,显示分区信息,并判断此中分区是否仍然处于挂载状态;

如果是,则显示分区和对应的挂载点;否则,则说明分区没有挂载;

2、提示用户接下来操作会破坏硬盘上的所有数据,并询问用户是否继续进行;形如:Continue(y/N)?

如果用户选择继续,则抹除此硬盘上的所有分区信息(如果是仍处理挂载状态的分区,则需要先卸载);否则退出;

3、将此硬盘分为三个主分区:

第一个主分区,50M,ext3文件系统

第二个主分区,512M,ext3文件系统

第三个主分区,256M,swap文件系统

OK,开始实现:

#!/bin/bash

#: Title: All_Mini_Linux.sh

#: Synopsis:

#: DateTime: 2011-08-04 00:36:35

#: Version: 0.1

#: Author: weiyan

#: Options:

#

read -p"The target disk: "DSK        # 提示用户选择即将分区的硬盘

iffdisk -l $DSK | grep"^/dev"&> /dev/null ; then     #判断硬盘的分区状态。

fdisk -l $DSK | grep"^/dev"

PARTS=`fdisk -l $DSK | grep"^/dev"| awk'{print $1}'`

forI in $PARTS;do# 使用循环的方式,将硬盘上每一个分区的状态和是否挂载,挂载在哪告诉用户。

ifmount | grep"$I"&> /dev/null; then

mount | grep"$I"

else

echo"$I is not mounted."

fi

done

fi

SPART() {                # 制作名为SPART的函数,这个函数的功能就是提示用户准备分区,当允许分区则开始分区!

read -p"Warning !!!!! Next you do it will wipe your disk !!!! Continue(y/N)?"CHOICE

case$CHOICE in

y|Y)

forI in $PARTS;do

ifmount | grep"$I"&> /dev/null; then

fuser -km $I

umount $I

fi

done

ddif=/dev/zero of=$DSK bs=512 count=1 &> /dev/null   # 将用户所选的硬盘的MBR直接擦除。让其成为空盘。

echo '

n

p

1

+50M

n

p

2

+512M

n

p

3

+256M

t

3

82

w' | fdisk $DSK &> /dev/null      # 将分区的信息传递给 fdisk,开始分区。

partprobe $DSK

sleep 1           # 分区之后要用sleep命令让系统“沉睡”1秒,这样可以让分区的信息真正的同步进硬盘,而不至于格式化出错。

mke2fs -j ${DSK}1 &> /dev/null    # 分别格式化每一个分区并且格式化虚拟分区。

mke2fs -j ${DSK}2 &> /dev/null

mkswap ${DSK}3 &> /dev/null

return0

;;

n|N)

return1

;;

*)

return2

;;

esac

}

SPART              # 执行这个 SPART 函数。

[ $? -eq 0 ] && echo"The Disk wipe success !!!!!!!"|| echo"Failure"# 判断函数的返回值,如果是0,则提示分区成功。

这样一来,我们就有了一个完整的分好了区,并且格式化了的硬盘了。接下来呢?

将硬盘挂载!

1

2

3

4

5

下一页

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值