오류가 발생했습니다 : 지원되지 않는 작업


10

달릴 때

fallocate -l 10G /path/to/file

다음과 같은 오류가 반환되었습니다.

fallocate: file: fallocate failed: Operation not supported

dd (if = / dev / zero 또는 if = / dev / urandom)를 사용하여 파일을 만들 수는 있지만 수십 GB 크기의 큰 파일을 만들려고하면 완료하는 데 몇 시간이 걸립니다.

우분투 실행 14.04. ext4 파티션을 사용하여 파일 형식을 지정해도 결과가 바뀌지 않는 것 같습니다.

우분투가 아닌 CentOS6 컴퓨터에서 잘 작동합니다.


어떤 파일 시스템을 사용하고 있습니까?
g_p

만들고있는 파일 형식도 업데이트하십시오.
vembutech

ext4를 사용하면 파일 형식이 중요하지 않습니다. 빈 파일, .txt, .img를 만들 때 동일한 오류가 발생합니다.
John J Johnson

답변:


11

스파 스 파일에 문제가없는 경우 (예 : 파일 시스템으로 이미지를 채우기 위해 이미지를 생성하려는 경우), 전혀 생성되지 않습니다.

100GB는 3 밀리 초가 걸립니다.

# time dd if=/dev/zero of=tmptst.dat bs=1G seek=100 count=0
0+0 records in
0+0 records out
0 bytes (0 B) copied, 0,00037726 s, 0,0 kB/s

real    0m0.003s
user    0m0.000s
sys 0m0.002s

결과 파일 :

# ls -lh tmptst.dat
-rw-r--r-- 1 root root 100G 2015-01-22 16:39 tmptst.dat

현재 실제 크기 : 0 바이트

# ls -lsh tmptst.dat
0 -rw-r--r-- 1 root root 100G 2015-01-22 16:39 tmptst.dat

dm-crypt / LUKS 컨테이너 생성과 관련하여 / dev / urandom을 사용하여 컨테이너를 생성하는 것이 / dev / zero로 컨테이너를 생성하고 점진적으로 데이터로 채우는 것보다 안전하다는 가정하에 운영되었습니다. 느린 속도는 단순히 / dev / urandom의 pRNG가 작동하는 속도의 제한 이었기 때문에 fallocate를 사용하여 문제를 해결하지 못했을 것입니다. 그러나 fallocate 자체가 왜 작동하지 않는지 여전히 알 수 없습니다. 그래도 응답을 응원합니다. 이번에 상상 한대로 받아 들여지는 것이 가장 좋은 답변입니다.
John J Johnson

fallocate가 같은 일을 할 수 없는지 궁금합니다. 그것은 나에게 이해가 될 것입니다.
unfa

3

콘텐츠에 신경 쓰지 않고 데이터가 필요한 경우

먼저

dd if=/dev/urandom of=tmp.txt bs=1M count=1

그것은 만들 것입니다

-rw-r--r-- 1 root root 1.0M Oct 17 00:30 tmp1.txt.

그런 다음 10M 파일을 만들려면 위에 생성 된 파일을 사용하여 반복적으로 추가하십시오.

for i in {1..10}; do dd if=tmp.txt of=tmp1.txt bs=1M oflag=append conv=notrunc; done;

2

나는 또한이 문제에 부딪쳤다.

디렉토리 경로의 심볼릭 링크가 문제인 것 같습니다. / tmp에서 동일한 명령을 시도하면 작동합니다.

fallocate 명령에 '-x'를 추가하여 문제를 해결할 수있었습니다. 이로 인해 'posix 모드'가 발생했으며 시간이 더 오래 걸렸습니다.

파일 시스템이 ext4 인 경우에도 심볼릭 링크로 인해 '이 파일 시스템에서 지원되지 않습니다'오류가 발생했습니다. 실제로 디렉토리 이름으로 직접 가면 (심볼릭 링크가없는 경우) fallocate () 호출이 작동했습니다.

A1 : 만들고있는 파일의 전체 경로 이름에 기호 링크가 없습니다.

A2 : 시간이 더 걸리더라도 '-x'를 사용하십시오.

b \ 375

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.