Исключение процесса форматирования USB Flash для резервного копирования
Для того, чтобы резервное копирование не форматировала флешку и работало на любой
файловой системе, были сделаны следующие изменения в библиотеке spd.
После копирования на флешку, если не ntfs, выдается ошибка записи, но в итоге резервная копия вроде создается.
При ntfs все работает, как и раньше.
/usr/lib/spd/scripts/usb/format
...
# wipeUSB - if not mysafe only
# format - any way, if mysafe - make signature only
if ( $fs != "mysafe" ) {
$retval = wipeUSB( $device );
if ($retval == 1 )
exit( 0 ); // wiping failed
$lockfile = "/tmp/format_in_progress";
exec("echo $device >> $lockfile");
if( partitionUSB( $device, $fs ) ) {
unlink($lockfile);
exit(0); // partitioning failed
}
}
...
|
/usr/lib/spd/scripts/usb/usbToolbox.php
function isMySafe( $partition )
{
...
# if( $parttype != "ntfs" )
# return false;
...
if( $parttype == "ntfs" )
exec("/usr/bin/ntfs-3g $partition $tmpmnt 2> /dev/null", $lines, $retval );
else exec("/bin/mount $partition $tmpmnt 2> /dev/null", $lines,
...
}
function getUSBStatus()
{
...
# if( $parttype=="ntfs" && @stat( "$partmp/.signature" ) ) {
if( @stat( "$partmp/.signature" ) ) {
$ms = "mismatch";
}
}
} else {
// if the key was not mounted, determine if it's
// mysafe
# if( $parttype == "ntfs" ) {
$msstate = isMySafe( $d );
if( $msstate === true )
$ms = "true";
else if( $msstate == "mismatch" )
$ms = $msstate;
# }
...
}
function signForMySafe($device)
{
...
$parttype = getPartFSType( $device );
if ( $parttype == "ntfs") {
if( USEMYSAFELABEL == true )
exec("/usr/sbin/ntfslabel $device ".MSLABEL ." 2> /dev/null");
exec("/usr/bin/ntfs-3g $device $tmpmnt 2> /dev/null", $lines, $retval );
} else exec("/bin/mount $device $tmpmnt 2> /dev/null", $lines, $retval );
...
}
function formatUSB( $device, $fs, $label )
{
...
if ( $fs != "mysafe" )
exec( $cmd, $lines, $retval );
else $retval = 0;
...
}
|
/usr/lib/spd/scripts/usb/usbremoveMS
...
# $retval = mountPart( $d, $dir, "ntfs");
$fs = getPartFSType($d);
$retval = mountPart( $d, $dir, $fs);
...
|
|