Вы могли использовать некоторый Linux LiveCD как SystemRescueCD для копирования от диска PATA до диска SATA. Добавленная премия при выполнении Вы могли изменить размер разделов на новом (вероятно, больше) диск.
dd if=/dev/hda of=/dev/sda
Все, в чем Вы нуждаетесь:)
Попытайтесь монтировать файловую систему с iocharset набором опции к кодированию, это использует.
От man mount
под разделом "Mount options for fat":
iocharset=value
Character set to use for converting between 8 bit characters and
16 bit Unicode characters. The default is iso8859-1. Long file‐
names are stored on disk in Unicode format.
См. также под разделом "Mount options for vfat":
uni_xlate
Translate unhandled Unicode characters to special escaped
sequences. This lets you backup and restore filenames that are
created with any Unicode characters. Without this option, a '?'
is used when no translation is possible. The escape character is
':' because it is otherwise illegal on the vfat filesystem. The
escape sequence that gets used, where u is the unicode charac‐
ter, is: ':', (u & 0x3f), ((u>>6) & 0x3f), (u>>12).
и
utf8 UTF8 is the filesystem safe 8-bit encoding of Unicode that is
used by the console. It can be be enabled for the filesystem
with this option or disabled with utf8=0, utf8=no or utf8=false.
If `uni_xlate' gets set, UTF8 gets disabled.
Править:
Я сожалею, это был Linux, это для BSD (от man mount_msdosfs
:
-L locale
Specify locale name used for file name conversions for DOS and
Win'95 names. By default ISO 8859-1 assumed as local character
set.
-D DOS_codepage
Specify the MS-DOS code page (aka IBM/OEM code page) name used
for file name conversions for DOS names.
Переименуйте может сделать это..
попробуйте что-то как
find dir -depth -exec rename -n 's/[^[:ascii:]]/_/g' {} \; | cat -v
Вам, возможно, понадобится кошка-v для надлежащего отображения любых странных символов без завинчиваемого терминала.
если это печатает приемлемое изменение замен-n к-v.
Тем не менее это кажется, что набор символов в Вашей файловой системе является неправильным (смонтируйте-o utf8?), так как этот вид вещи должен действительно работать...
Замена подчеркиванием:
find . | perl -ane '{ if(m/[[:^ascii:]]/) { print } }' | rename -n 's/[^[:ascii:]]/_/g'
Это один из правильных способов рекурсивного применения:
find . -depth -execdir rename 'y/[\:\;\>\<\@\$\#\&\(\)\?\\\%\ ]/_/' {} \;
замените все эти символы на подчеркивание. Будьте осторожны, учитываются все пробелы.
почему это работает? пройдите этот тест:
mkdir test
cd test
mkdir -p a$/b$/c$/d$ f%/g%/h%/i% j%/k%/l%/m%
find . -depth -execdir rename 'y/[\:\;\>\<\@\$\#\&\(\)\?\\\%\ ]/_/' {} \;
ls -R
(как видите, все файлы были изменены)
mount_msdosfs
, но I' m необучение, что указать для L или D, переключается как документы don' t вдаются в любые определенные подробности. Я полагал, что диск означал, что мне было нужноlarge
опция и here' s, что я попробовал:mount_msdosfs -o large /dev/ad6s1 /mnt/Elements
. К сожалению, этот didn' t работают также, I' m, все еще получая мир (и другие) дросселирующий на определенных именах файлов, содержащих ' special'персонажи. – Dan 7 January 2010 в 23:35/usr/share/i18n/charmaps/
с файлами карт символов (имена файлов и текст заголовка в них) может быть информативным.См. также: en.wikipedia.org/wiki/Character_encoding – Paused until further notice. 8 January 2010 в 03:03