写一个脚本(前提:请为虚拟机新增一块硬盘,架设它为/dev/sdb),为指定的硬盘创建分区。

1,列出当前系统上所有的磁盘,让用户选择,如果选择quit则退出脚本;如果用户选择错误,就让用户重新选择;

2,档用户选择后,提醒用户确认接下来的操作可能会损坏数据,并请用户确认:如果用户选择y就继续,n就退出;否则,让用户重新选择;

3,抹除那块硬盘上的所有分区(提示,抹除所有分区后执行sync命令,并让脚本睡眠3秒后在分区),并为其创建三个主分区,第一个为20M,第二个为512M,第三个为128M,切第三个为swap分区类型;(提示:将分区命令通过echo传给fdisk即可实现)

#!/bin/bash

#

echo "Initial a disk..."

echo -e "\033[31mWarning:\033[0m"

fdisk -l 2> /dev/null | grep -o "^Disk /dev/[sh]d[a-z]"

read -p "Your Choose:" PARTDISK

if [ $PARTDISK == 'quit' ];then

echo "quit"

exit 7;

fi

until fdisk -l 2> /dev/null | grep -o "Disk /dev/[sh]d[a-z]" | grep "^Disk $PARTDISK$" &> /dev/null;do

read -p "Wrong option,Your choice aging:" PARTDISK

done

read -p "will destroy all data,continue:" CHOICE

until [ $CHOICE == 'y' -o $CHOICE == 'n' ];do

read -p "Will destroy all data,continue:" CHOICE

done

if [ $CHOICE == 'n' ];then

echo "QUIT"

exit 9;

else

dd if=/dev/zero of=$PARTDISK bs=512 count=1 &> /dev/null

sync

sleep 3

echo 'n

p

1

+20M

n

p

2

+512M

n

p

n

p

3

+128M

t

3

82

w' | fdisk $PARTDISK &> /dev/null

partprobe $PARTDISK

sync

sleep 2

mke2fs -j ${PARTDISK}1 &> /dev/null

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

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

fi

执行过程:

[root@localhost ~]# ./partdisk.sh

Initial a disk...

Warning:

Disk /dev/sda

Disk /dev/sdb

Disk /dev/sdc

Disk /dev/sdd

Your Choose:/dev/sdb

will destroy all data,continue:y

1+0 records in

1+0 records out

512 bytes (512 B) copied, 0.0304787 s, 16.8 kB/s

[root@localhost ~]# fdisk -l

Disk /dev/sda: 21.5 GB, 21474836480 bytes

255 heads, 63 sectors/track, 2610 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x00051800

Device Boot      Start         End      Blocks   Id  System

/dev/sda1   *           1          39      307200   83  Linux

Partition 1 does not end on cylinder boundary.

/dev/sda2              39         549     4096000   82  Linux swap / Solaris

Partition 2 does not end on cylinder boundary.

/dev/sda3             549        2611    16567296   83  Linux

Disk /dev/sdb: 21.5 GB, 21474836480 bytes

255 heads, 63 sectors/track, 2610 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x18756792

Device Boot      Start         End      Blocks   Id  System

/dev/sdb1               1           4       32098+  83  Linux

/dev/sdb2               5          70      530145   83  Linux

/dev/sdb3              71          87      136552+  82  Linux swap / Solaris

Disk /dev/sdc: 21.5 GB, 21474836480 bytes

255 heads, 63 sectors/track, 2610 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x00000000

Disk /dev/sdd: 21.5 GB, 21474836480 bytes

255 heads, 63 sectors/track, 2610 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x00000000

[root@localhost ~]# mount /dev/sdb1 /mnt

[root@localhost ~]# ls /mnt

lost+found

[root@localhost ~]# vi partdisk.sh

[root@localhost ~]# umount /mnt

linux自动分区shell,SHELL脚本实现分区相关推荐

  1. Linux自动备份MySQL数据库脚本代码

    Linux自动备份MySQL数据库脚本代码 下面这段Linux的Shell脚本用于每日自动备份MySQL数据库,可通过Linux的crontab每天定时执行 在脚本中可设置需要备份的数据库表清单,并且 ...

  2. linux自动安装Java环境脚本,Linux 自动添加JAVA环境脚本

    Linux 自动添加JAVA环境脚本 1. 删除原有的JAVA环境变量配置 ###  --------------delete old config --------------------  ### ...

  3. Linux自动发布Java程序脚本

    Linux自动发布Java程序脚本 1. 编译脚本 2. 启动脚本 3. 停止脚本 4. 最终发布脚本 1. 编译脚本 #! /bin/bash time="`date +%Y%m%d-%H ...

  4. linux常用命令linux自动挂载WinXP系统下的分区

    1 终端使用命令挂载和泄载WinXP系统的分区      >> cd /mnt      >> mkdir win32d      >> mount /dev/hd ...

  5. arm linux 自动开机执行sh脚本

    打开开机启动文件(shell 脚本), 每个板子可能有不同的Linux内核, 故启动文件名称不一样 例如: /etc/init.d/rcS /etc/init.d/rc.local /etc/prof ...

  6. linux 自动提权perl脚本

    linux各种版本的 exp地址:http://dl.packetstormsecurity.net/UNIX/penetration/rootkits/var.txt 使用demo yaseng@U ...

  7. linux自动运行upan可执行文件脚本,linux下插入USB设备使用脚本实现自动挂载

    某天客户要求说要想在linux OS上插入U盘,然后像和在windows上一样实现自动挂载,在网上没有搜索到有用的信息,有一个软件usbmount,但是试验用不了,有兴趣可以瞧瞧,地址如下 客户就是客 ...

  8. php 提权脚本 linux,linux 自动提权perl脚本

    使用demo yaseng@UAUC:~$ wget http://dl.packetstormsecurity.net/UNIX/penetration/rootkits/var.txt -O ro ...

  9. linux自动定时运行的脚本编写

    [root@test1 init.d]# crontab -e 在root文件后面添加一行(含义:每月的18日4:40分执行scott_select.sh) 40 4 18 * * /oracle_b ...

最新文章

  1. python待遇如何-Python薪资待遇到底是多少?老男孩python学习
  2. AI在出行场景的应用实践:路线规划、ETA、动态事件挖掘…
  3. java中取系统时间_JAVA中获取当前系统时间(示例代码)
  4. ***PHP Notice: Undefined index: ..问题的解决方法
  5. 各种PLC和触摸屏解密软件大全
  6. OOC 面向对象C语言编程实践
  7. 浅谈work_mem
  8. 10个值得珍藏的4K高清壁纸网站推荐
  9. 3类、5类、超5类线有什么不同
  10. Real-Time Rendering 翻译 3.图形处理单元
  11. 安装Robo 3T(Robomongo)MongoDB可视化工具
  12. excel表格横向纵向变换_从Python到Excel
  13. js事件-阻止默认操作
  14. 漫反射实现 - UnityShader
  15. ios自制电话本-swift
  16. inversion 矩阵_inversion是什么意思_inversion怎么读_inversion翻译_用法_发音_词组_同反义词_倒置-新东方在线英语词典...
  17. LeetCode第 310 场周赛
  18. 双系统电脑如何将两个系统安装到一个分区
  19. 哈工大csapp大作业报告
  20. 设计神经网络的基本原则,神经网络设计与实现

热门文章

  1. 从高排到低变成小楼梯儿歌_幼儿数学儿歌,转发收藏!
  2. 一个人学的软件测试,到底有多难?
  3. android 签名报错,AndroidStudio生成签名apk报错
  4. 守护进程: supervisor使用
  5. Mac笔记本安装Webstrom
  6. 从0到1开发自动化测试框架(硬货太多,建议阅读)
  7. 新鲜角度看问题:从Python角度解析Selenium原理
  8. 女孩子偷偷学好软件测试,想要年薪30w也没有很难!
  9. MySQL大表关联如何优化_MySQL 对于大表(千万级),要怎么优化呢?
  10. Hibenate连接mysql错误_hibernate连接数据库问题,注意是表名的大小写