См.Getopt::Std
:Вы можете просто заменить
require "getopts.pl";
&Getopts('F:f:');
с
use Getopt::Std;
getopts('F:f:');
Если вы также используете use warnings;
и use strict;
(, как обычно рекомендуется ), вам необходимо заранее объявить переменные с помощью our ($opt_F, $opt_f);
. В качестве альтернативы вы можете использовать хэш:
getopts('F:f:', \my %opts);
$opts{f} # instead of $opt_f
$opts{F} # instead of $opt_F
Ваша вторая команда ddrescue:
sudo ddrescue -f -c1 -b4096 /dev/sda2 /media/ubuntu/dd/suivi6
Отсутствует целевой параметр, поэтому файл карты берется в качестве цели и перезаписывается.
В качестве файла карты нет третьего параметра, поэтому он также не возобновляется, а перезаписывается с самого начала.
Если вашей целью был обычный файл, а не раздел диска, вы могли попытаться угадать, сгенерировать новый файл карты с помощью ddrescue --generate-mode
, но это не рекомендуется в вашей ситуации, если вы не можете гарантировать, что целевой диск был полностью обнулен до того, как вы начали копировать. Это гораздо проще сделать с целевым файлом, поскольку новые файлы по своей природе нулевые.
Вы можете либо начать заново (с другой целью, лучше больше не трогать свою, иначе рискуете усугубить ситуацию ), либо закончить; в конце концов, вы спасли 99,99%, это не так уж плохо.
Эй, я идиот. Ваша цель - обычный файл во второй команде. Если вы не модифицировали файл suivi6, вы все-таки можете попытаться сгенерировать прогресс из него (, но вы должны сохранить этот файл, так как теперь это ваш образ, а не исходная цель ).
См. info ddrescue Generate
, Режим генерации. И, возможно, mv suivi6 sda2.img
дать ему менее запутанное название. (Также убедитесь, что он имеет полный размер диска, тогда как обычный файл карты представляет собой небольшой -текстовый файл ).