외부 장치에 복사하면 NixOS에서 특수 문자가 엉망이 됩니다.

외부 장치에 복사하면 NixOS에서 특수 문자가 엉망이 됩니다.

나는 DAP(예: mp3 플레이어)를 가지고 있고 내 컴퓨터에 있는 폴더의 내용을 DAP에 동기화하려고 합니다. 이는 거의 예상한 대로 작동하지만 파일 이름에 이상한 일이 발생하고 있습니다. rsync로 동기화 중이지만 간단한 cp 'DR Pigekor - I østen stiger solen op.mp3' /mounted/device.

다른 장치에서는 로 표시됩니다 'DR Pigekor - I østen stiger solen op.mp3'. 나는 또한 manjaro를 실행하는 다른 컴퓨터를 확인했는데 똑같은 이상한 헤더나 매우 유사한 것을 보여주었으므로 그것은 단지 DAP가 아닙니다. 모든 파일은 내가 복사한 nixOS 시스템의 마운트된 드라이브와 원래 위치 모두에서 완전히 괜찮아 보입니다. 또한 Manjaro 머신에서 DAP로 파일을 복사하는 것은 잘 작동한다는 점에 유의해야 합니다.

en_US.UTF-8그런데, 내 시스템 로케일은 두 컴퓨터 모두에 있어야 하는 것입니다.

복사할 때 파일 이름을 유지하는 방법은 무엇입니까?

답변1

파일 형식에 대한 나의 이해가 잘못되었습니다. # fsck -N /dev/mmcblk0p1형식을 확인하기 위해 이 명령을 실행했는데 다음과 같이 출력되었습니다.

[/run/current-system/sw/bin/fsck.ext2 (1) -- /dev/mmcblk0p1] fsck.ext2 /dev/mmcblk0p1

나중에 나는 이것이 사실이 아니며 Hermann이 제안한 것처럼 실제 파일 시스템이 vfat라는 것을 알게 되었습니다. 이 명령을 사용하여 설치하면 문제가 해결되었습니다.

# mount -t vfat /dev/mmcblk0p1 /path/to/mnt -o shortname=mixed -o utf8

"shortname=mixed"는 대소문자를 유지합니다. 그렇지 않으면 vfat는 8자 이하의 파일 이름을 소문자로 변환하고(기본 동작은 "shortname=lowercase"입니다) rsync에 문제를 일으킵니다. Windows는 파일 시스템을 마운트할 때 UTF8을 사용하므로 동일한 방식으로 마운트되도록 지정합니다(기본 vfat 파일 시스템이 파일 이름을 UTF8로 저장하더라도 기본값은 iso-8859-1을 마운트하는 것입니다).

이 웹사이트에서 다음 명령을 찾았습니다. https://www.clug.org/rsync-to-fat32-drives/

관련 정보