2012-05-11 2 views
1

/images/backups가/images의 공간을 사용하고 있다고 생각합니까? 기존 파티션에서 루프 파티션을 만드는 방법

/dev/sdb1    820G 645G 135G 83% /images 
/dev/loop0   296G 296G  0 100% /images/backups 

나는/다른 컴퓨터에 500G 무료 이미지를 파티션의 유사한 종류를했습니다, 나는에 대한 350G를 꺼내 할 것/이미지/백업, 어떻게 그것을 할?

공간의 지정된 양을 줄 수있는 간단한 루프 마운트입니까, 아니면 필요한 크기와 마운트의 NULL 파일을 만들어야합니까? 그렇다면 마운트 옵션을 사용하여 크기를 지정해야합니다.

+1

이 파일의 백업은/dev/loop0에가 어디 있는지 알 수있는 사실은 충분한 정보가 아니다 - 그것은/이미지 일 수도 있고 아닐 수도 있습니다. "losetup"명령이이를 알려줍니다. –

+0

losetup/dev/loop0 /dev/loop0 : [0811] : 45585 (/images/backups.img), 그 파티션에 생성 된 NULL 파일입니까? – user379997

+0

그것에 대해 'NULL'은 없지만 예,/images에 있습니다. –

답변

3

고정 크기로 대상을 만들어야하지만 아직 실제로 블록이 작성되지 않은 "스파 스 (sparse) 파일"을 사용할 수 있습니다. 따라서 쓸 때까지 실제로 공간을 소비하지 않습니다 그것을). 예를 들어

:

dd if=/dev/zero of=file.img bs=1 count=0 seek=20G 

이 20기가바이트에 사전 할당 스파 스 파일을 만듭니다. 즉, 실제로 디스크에 20GB의 0을 쓰면 (파일을 비 sparse로 만들면) 쓰기 속도가 빨라지고 조각화가 줄어들 것입니다.

는 losetup을 명령 루프백 디바이스에 부착 할 수있는 파일 시스템이 생성 한 및 장착 : 기존 파일이 부족한 경우 알고 싶은 경우

losetup /dev/loop1 file.img 
mke2fs -j /dev/loop1 
mount /dev/loop1 /mnt/somewhere 

는 다음이 할 것 (GNU 도구와 시스템, 아래의 일부는 순수 POSIX 환경에서 지원되지 않음) 트릭 :

{ 
    read block_count block_size file_size 
    if ((block_count * block_size < file_size)) ; then 
     echo "Sparse" 
    else 
     echo "Non-Sparse" 
    fi 
} < <(stat --format='%b %B %s'$'\n' /images/backups.img) 
관련 문제