linux自动分区shell,SHELL脚本实现分区
写一个脚本(前提:请为虚拟机新增一块硬盘,架设它为/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脚本实现分区相关推荐
- Linux自动备份MySQL数据库脚本代码
Linux自动备份MySQL数据库脚本代码 下面这段Linux的Shell脚本用于每日自动备份MySQL数据库,可通过Linux的crontab每天定时执行 在脚本中可设置需要备份的数据库表清单,并且 ...
- linux自动安装Java环境脚本,Linux 自动添加JAVA环境脚本
Linux 自动添加JAVA环境脚本 1. 删除原有的JAVA环境变量配置 ### --------------delete old config -------------------- ### ...
- Linux自动发布Java程序脚本
Linux自动发布Java程序脚本 1. 编译脚本 2. 启动脚本 3. 停止脚本 4. 最终发布脚本 1. 编译脚本 #! /bin/bash time="`date +%Y%m%d-%H ...
- linux常用命令linux自动挂载WinXP系统下的分区
1 终端使用命令挂载和泄载WinXP系统的分区 >> cd /mnt >> mkdir win32d >> mount /dev/hd ...
- arm linux 自动开机执行sh脚本
打开开机启动文件(shell 脚本), 每个板子可能有不同的Linux内核, 故启动文件名称不一样 例如: /etc/init.d/rcS /etc/init.d/rc.local /etc/prof ...
- linux 自动提权perl脚本
linux各种版本的 exp地址:http://dl.packetstormsecurity.net/UNIX/penetration/rootkits/var.txt 使用demo yaseng@U ...
- linux自动运行upan可执行文件脚本,linux下插入USB设备使用脚本实现自动挂载
某天客户要求说要想在linux OS上插入U盘,然后像和在windows上一样实现自动挂载,在网上没有搜索到有用的信息,有一个软件usbmount,但是试验用不了,有兴趣可以瞧瞧,地址如下 客户就是客 ...
- php 提权脚本 linux,linux 自动提权perl脚本
使用demo yaseng@UAUC:~$ wget http://dl.packetstormsecurity.net/UNIX/penetration/rootkits/var.txt -O ro ...
- linux自动定时运行的脚本编写
[root@test1 init.d]# crontab -e 在root文件后面添加一行(含义:每月的18日4:40分执行scott_select.sh) 40 4 18 * * /oracle_b ...
最新文章
- python待遇如何-Python薪资待遇到底是多少?老男孩python学习
- AI在出行场景的应用实践:路线规划、ETA、动态事件挖掘…
- java中取系统时间_JAVA中获取当前系统时间(示例代码)
- ***PHP Notice: Undefined index: ..问题的解决方法
- 各种PLC和触摸屏解密软件大全
- OOC 面向对象C语言编程实践
- 浅谈work_mem
- 10个值得珍藏的4K高清壁纸网站推荐
- 3类、5类、超5类线有什么不同
- Real-Time Rendering 翻译 3.图形处理单元
- 安装Robo 3T(Robomongo)MongoDB可视化工具
- excel表格横向纵向变换_从Python到Excel
- js事件-阻止默认操作
- 漫反射实现 - UnityShader
- ios自制电话本-swift
- inversion 矩阵_inversion是什么意思_inversion怎么读_inversion翻译_用法_发音_词组_同反义词_倒置-新东方在线英语词典...
- LeetCode第 310 场周赛
- 双系统电脑如何将两个系统安装到一个分区
- 哈工大csapp大作业报告
- 设计神经网络的基本原则,神经网络设计与实现
热门文章
- 从高排到低变成小楼梯儿歌_幼儿数学儿歌,转发收藏!
- 一个人学的软件测试,到底有多难?
- android 签名报错,AndroidStudio生成签名apk报错
- 守护进程: supervisor使用
- Mac笔记本安装Webstrom
- 从0到1开发自动化测试框架(硬货太多,建议阅读)
- 新鲜角度看问题:从Python角度解析Selenium原理
- 女孩子偷偷学好软件测试,想要年薪30w也没有很难!
- MySQL大表关联如何优化_MySQL 对于大表(千万级),要怎么优化呢?
- Hibenate连接mysql错误_hibernate连接数据库问题,注意是表名的大小写