教程目标:dd wipe 命令磁盘清空shell脚本,笔记本台机MAC通用
日 期:2015年08月20日
联系邮箱:[email protected]
Q Q 群:1851 15701
51CTO博客首页:http://990487026.blog.51cto.com
生产需求:
公司人数达到一定数目,就会存在人员流动,然后附属的PC或者Server,MAC当然要彻底清空里面的数据,装好新的windows,linux,MAC系统库存起来,留给下一个准备入职的人员使用。
使用这个脚本能大大减少劳动力,离职的电脑拿过来,插入准备的U盘,只要有电脑常识的人,只需要输入yes 或者no,就可以完成电脑磁盘清空的任务,大大提高工作效率。
一,开始动手:
1,你需要一个8G的U盘
2,一张linux发行版的光盘,或者一个具备启动linux发行版的U盘,用来安装linux到上面的8G U盘
Ready!
二,找一个redhat,CentOS,Frdora的发行版,安装到U盘,在安装的时候请注意,一定要使用手动去分区,不要使用默认的磁盘卷分区。
1, /boot分区
2, /根分区
3,/home 分区
指定这三个分区,足矣
三, 系统时建议把桌面也安装,安装完成后,修改inittab运行级别为3,默认不开桌面,想开就开。
插入U盘,从U盘开机
vim /root/.bashrc
在最下面添加一行:bash disk.sh
保存退出!
vim /root/disk.sh
把下面的脚本内容复制进去,保存。
这样使用root开机就可已直接显示使用磁盘清空命令了。
注意:脚本运行的时候,会出现卡死的假象,其实并不是卡死,而是dd命名在执行的时候不输出任何信息,执行完毕之后,会显示用了多少时间,擦写的速度是多少。
磁盘灯会一直亮,直到清空完成
============脚本开始===============================
#!/bin/bash clear setterm -blank 0 date echo "" rm -rf diskready rm -rf temp1 rm -rf disklist touch diskready touch disklist fdisk -l &>> temp1 for i in {a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,r,s,t,u,v,w,x,y,z} do # umount disk device for j in {1..10} do umount /dev/sd$i$j &>/dev/null done # check once device mount |grep "^/dev/sd$i" &>/dev/null stat1=`echo $?` #check this device exits grep "sd$i" temp1 stat2=`echo $?` #stat1 localhost disk device if [ $stat1 -eq 0 ];then echo -e "\033[40;33mskip localhost disk device sd$i\033[0m\n\n" else #stat2 check this device physcis disk if [ $stat2 -eq 0 ];then echo -en "\033[47;30mAre You sure destory data for sd$i [y/n] ?\033[0m " read key echo "" case $key in y) #add duty into lisst echo "sd$i" &>> diskready cat temp1 | grep "Disk /dev/sd$i" &>> disklist ;; n) echo -e "\033[44;31mgive up destory data of sd$i \033[0m\n\n" ;; *) echo -e "\n\ninput error ,program exiting\n\n" exit 99 ;; esac fi fi done # operation disk cat disklist | grep "s" &>/dev/null if [ $? -eq 0 ] ;then echo -e "\033[47;31;7m========Make Sure Your Operate Disk List==========\033[0m" cat disklist echo -en "\nAre You Sure Destory This Disk data [y/n] ? " read list case $list in y) for o in `cat diskready` do echo "Destorying data $o, Please wating........." dd bs=4096 if=/dev/zero of=/dev/$o # wipe -kq /dev/$o done ;; n) echo "Quiting " exit ;; *) echo "input error ,Quiting" ;; esac fi rm -rf diskready rm -rf temp1 rm -rf disklist echo "" date read -p "finished ,Do you want to reboot this Computer [y/n] ? " stat3 case $stat3 in y) echo "reboot your Computer ,please waiting ....." reboot ;; n) echo "exit" sleep 1 clear exit ;; *) echo "input error ,quit" sleep 1 clear exit ;; esac
============脚本结束===============================
脚本是我踏出学校大门,入职时写的,写的不是很好,但很实用。
细心的同学会发现,这个脚本不仅可以使用dd命令来清空磁盘,也可已使用wipe命令来清空磁盘,
wipe命令被我注释了,你想使用的话,你得手动安装一个wipe工具。
至于dd命令与wipe命令,在安全系数与清空速度上的对比,看你怎么妥协速度与安全了。
参考:使用脚本默认的dd 命令,160G 硬盘,每秒70M,
使用wipe命令,需要等待大约两天吧
dd命令相比wipe来说,算快多了。
至于速度上为什么会有这么大差别,大家自己去个google一下。
谢谢大家浏览,如对本文存在疑问,请至邮箱[email protected],开源社区,有你更精彩!