2013-02-21 2 views
0

디렉토리가 생성하는 ext2 램 디스크 파일 시스템의 크기를 자동으로 결정하려고합니다.디렉토리에서 ext2 파일 시스템을 만들어 램 디스크로 사용합니다.

BLOCK_COUNT=`du $RAMDISK_FS_DIR| tail -1 |awk '{print $1}' 

dd if=/dev/zero of=ramdisk.img bs=1024 count=$BLOCK_COUNT 
mke2fs -F ramdisk.img -L "ramdisk" -b 1024 -m 0 
tune2fs ramdisk.img -i 0 

하지만 마운트 할 때와 ramdisk.imgcp -r$RAMDISK_FS_DIR는 내가 48 개 블록에 의해 내이 특정한 경우 증가 BLOCK_COUNT 정확히 것을 나는 결정이

cp: cannot create directory `ramdisk/var/www': No space left on device 

같은 메시지를 얻을 : 내가 현재하고있는 중이 야 것은 작전에 얼마나 필요한지. 임의의 디렉토리 크기에 대해이 번호를 찾는 방법이 필요합니다.

내 호스트 파일 시스템은 ext4입니다.

+1

나는'| grep 'fs $''하고 있습니다. 'du -s' 사용을 원하셨습니까? – Celada

+0

내 나쁜 내가 meand'꼬리 -1' – fakedrake

답변

2

나는 이것을 일반적으로하는 좋은 방법이 없다고 생각합니다. 일반적으로 파일 시스템의 슈퍼 블록, 아이 노드 테이블, 블록 비트 맵 및 기타 다양한 구조는 파일 시스템의 크기와 크기에 따라 크기가 다릅니다. 심지어 파일이 차지하는 공간 (du으로 계산 됨)이 소스 파일 시스템에서 대상 파일 시스템과 같지 않을 수 있습니다.

나는 왜 그 내용과 정확히 같은 크기의 파일 시스템을 만들려고하는지 궁금합니다. 이 파일 시스템은 빌드 된 후에 항상 가득 차 있기 때문에, 처음에 물건을 지우지 않는 한 아무 것도 추가 할 수 없기 때문에 읽기 전용으로 생각 될 수도 있습니다. 읽기 전용 인 경우 구입하십시오. cramfs 또는 squashfs과 같은 파일 시스템 유형을 사용하는 것이 어떻습니까?

+0

실제로 그것은 읽기 전용으로, 나는 NFS를 통해 쓰기 가능한 섹션을 마운트합니다, fs 타입을 변경하면 커널 수정이 필요합니까? – fakedrake

+0

나는 파일 시스템을 장치 내에서 쓸 수 있도록하기로 결정하여 du의 출력에 100K 여분의 공간을 두었습니다. 이 나던이 나중에 나그네가되기를 바란다. – fakedrake

관련 문제