Просто в дополнение к ответу Тоуна ,
Для меня просто использовать их решение было недостаточно.
Когда я создал свои разделы с помощью fdisk
, мне сначала пришлось создать новую пустую таблицу разделов GPT, затем раздел, затем файловую систему, а затем выполнить шаги, которые они предложили.
Весь процесс будет (осторожным, так как шаги, описанные ниже, удалят все данные в существующих разделах):
Шаг 0 :Сделайте резервную копию любых данных на диске, которые вы хотите сохранить.
Узнайте имя устройства (в моем случае/dev/sdb
)
sudo fdisk -l
Запустите fdisk
на устройстве
sudo fdisk /dev/sdb # replace b by your device letter.
Удалить существующие разделы (повторить для всех имеющихся разделов)
d
Создайте новую пустую таблицу разделов GPT
g
Создать новый раздел
n
Записать изменения в устройство
w
Записать новую файловую систему exFAT
sudo mkfs.exfat -n my_label /dev/sdb1
Конвертировать загрузочную запись в GPT (Ответ Тоуна)
sudo gdisk /dev/sdb
Просто напишите сразу
w
Примите, что вы можете потерять данные (сначала сделайте резервную копию)
Y
Установите данные msftdata
в разделе exFAT (также взято из ответа Тоуна ). Поскольку у нас есть только один раздел, примените команду к разделу 1
sudo parted /dev/sdb
set 1 msftdata on
q
#!/usr/bin/perl
use File::Find;
my $headdir="/some/path";
my @files=();
my $lines={};
find( { wanted => sub { push @files, $_ }, no_chdir => 1 }, $headdir );
foreach my $file (@files) {
next unless(-f $file);
system "cp $file $file". ".old";
open(my $fhin, "$file".".old");
open(my $fhout, ">$file");
while(<$fhin>) {
if(not defined $lines->{$_}) {
print $fhout $_;
$lines->{$_} = 1;
}
}
close($fhin);
close($fhout);
#optional: system("rm $file".".old");
}
РЕДАКТИРОВАТЬ:(Протестировано только )с файлами, упомянутыми в вопросе, необходимо небольшое изменение кода