gddrescue
кажется копией, которая пытается повторно реализовать функции из sdd
, но поскольку sdd
бесполезна для оптических носителей, то же самое относится и к gddrescue
.
Причина в том, что при доступе к оптическим носителям на уровне драйвера UNIX вы полагаетесь на функции восстановления после ошибок драйвера из ОС. Этот драйвер написан не для оптических носителей, а для жестких дисков, и его идентификатор обычно намного хуже, чем то, что вы можете получить от программного обеспечения, разработанного для оптических носителей.
Я рекомендую использовать readcd -noerror
из cdrtools, он напрямую обращается к диску, используя собственные команды SCSI, отправляемые через универсальный интерфейс SCSI. Последние версии находятся в исходном дереве schilytools. Readcd даже включает в себя декодер Рида-Соломона, который может помочь в случае, если восстановление после ошибок в прошивке CD-привода не является оптимальным. Декодер Рида-Соломона активируется опцией -edc-corr
.
Обратите внимание, что сила восстановления после ошибки контролируется параметром retries=
.
Проведя небольшое исследование, я обнаружил, что проблема с libcairo на самом деле была проблемой с freetype. Этот вопрос-https://stackoverflow.com/questions/60782074/r-issue-unable-to-load-shared-object-cairo-so-on-linux-centos-7-предполагает, что проблема может заключаться в нескольких библиотеках freetype, однако выполнение rpm freetype:
rpm -q freetype
freetype-2.8-14.el7_9.1.x86_64
freetype-2.8-14.el7_9.1.i686
Обнаружено отсутствие дубликатов библиотек свободного типа.
Оказывается, LD _LIBRARY _PATH ищется перед библиотеками os:https://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html
Конечно же, бегущая находка:
sudo find / -type f -iname 'libfreetype.so.*'
/usr/lib/libfreetype.so.6.14.0
/usr/lib64/libfreetype.so.6.14.0
/usr/local/bin/glnxa64/libfreetype.so.6.11.1
/usr/local/MATLAB/MATLAB_Runtimev92/v92/bin/glnxa64/libfreetype.so.6.11.1
/usr/local/MATLAB/R2017a/bin/glnxa64/libfreetype.so.6.11.1
Обнаружено, чего не будет в rpm. -У MATLAB есть собственные библиотеки свободного типа! Какой LD _LIBRARY _PATH переопределял библиотеку os freetype (, поэтому R работал, когда sudoed ).
Наиболее последовательное исправление состоит из двух частей:
function [status,cmdout]=systemAlt(cmd)
if isunix()
[status,cmdout]=system(['export LD_LIBRARY_PATH="";',cmd]);
else
[status,cmdout]=system(cmd);
end
end
Как ни странно, мне также нужно было загрузить новые шрифты, чтобы все заработало правильно:
yum install xorg-x11-font*
Итак, -если кто-то застрял, как я, я надеюсь, что это поможет вам.