当前位置: 首页 > 工具软件 > Xfburn > 使用案例 >

xfburn刻录linux iso,用脚本提升开源生活品质之:光盘刻录

乜业
2023-12-01

#! /bin/bash# Author : Jiahuan Li

# License: GPLv2# Date : 2007/06/22

# Desc : make use of cdrocord to burn cd/dvd diskERASE=# 擦除RW光盘

BURN= # 烧刻## 检查是否已经安装cdrecordwhich cdrecord &>/dev/null || {

echo"cdrecord not installed"exit 127

}## 用法usage () {

cat <

用法:$0[ options ] [ xxx.iso ]

options:

-e 擦除RW光盘

-b 刻录

-h 打印本条帮助信息

说明:

对于CD-R/DVD-R来说, 不需要指定options, 指定iso后直接刻录

对于CD-RW/DVD-RW来说, 需要先擦写再记录,即需要指定 -e -b 参数

EOF

exit 1

}## 要求至少有一个参数

[[ -n $1 ]] || usagewhile getopts 'ebh' opt; do

case$optin

e)ERASE=true;;

b)BURN=true;;

*)

usage;;

esac

done## 去掉 -e/-b, iso=xxx.iso

shift $(( OPTIND -1 ))iso=$1## 检查$iso是否为iso文件[[ -n$iso]] && {

file$iso| grep -q 'ISO 9660';RC=$?

[[$RC!= 0 ]] && {

echo"Target is not a ISO file, aborting ..."exit 127

}

}## 导入usb光驱驱动模块, 一般不需要手工导入,udev在开机时会加载## 止处是防止模块被列入黑名单#modprobe sr_mod 2>/dev/null

#modprobe sg 2>/dev/nullmodprobe sr_mod 2>/dev/null

modprobe sg 2>/dev/null## 探测刻录光驱是哪个设备

if [[ -e /dev/cdrw ]]; then

rw_dev=/dev/cdrwelif [[ -e /dev/dvdrw ]]; thenrw_dev=/dvdrw

elserw_dev=$( cdrecord -scanbus 2>/dev/null | awk '/RW/ {print$1}' )

fi## 找不到刻录光驱,退出[[ -z$rw_dev]] && {

echo"Can not found RW device, aborting ..."exit 127

}

echo"Found RW device: $rw_dev"## umount先

umount $rw_dev 2>/dev/nullRC=0## 如果没有指定要擦除或刻录,则直接刻录( CD-R, DVD-R 盘不用擦,直接刻 )if [[ -z"$ERASE$BURN"]]; then

cdrecorddev=$rw_devblank=fast && cdrecorddev=$rw_dev$iso;

else## 如果指定擦盘[[ -n$ERASE]] && { cdrecorddev=$rw_devblank=fast;RC=$?; }## 如果指定刻盘[[ -n$BURN]] && (( RC == 0 )) && [[ -n$iso]] && cdrecorddev=$rw_dev$isofi## modprobe -r cdrom sg sg_mod sr_mod 2>/dev/null## 弹出光驱{ eject && sleep 5 && eject -t; } &>/dev/null &

 类似资料: