[Linux/Ubuntu 파일 시스템 관리] File system 포맷(format)하기
disk partition이 있다면 partition 별로 file system을 선택해야 한다. mkfs로 format을, fsck로 check를 할 수 있다. mkfs 명령은 mkfs.ext2, mkfs.ext3, mkfs.ext4, mkfs.cramfs, ... 와 같은 형태로 제공한다. 즉, . 뒤의 부분이 사용될 file system이다. 이는 다음과 같이 확인 가능하다.
~$ ls /sbin/mkfs.*
/sbin/mkfs.bfs /sbin/mkfs.ext3 /sbin/mkfs.minix /sbin/mkfs.vfat
/sbin/mkfs.cramfs /sbin/mkfs.ext4 /sbin/mkfs.msdos
/sbin/mkfs.ext2 /sbin/mkfs.ext4dev /sbin/mkfs.ntfs
Hard disk partition에 file system 생성하기
file system 생성과 체크에 사용될 software package가 필요하다. ext인 경우 e2fsprogs, ntfs는 ntfsprogs, msdos와 vfat은 dosfstools, xfs는 xfsprogs, jfs는 jfsutils, 그리고 reiserfs는 reiserfs-utils가 설치되어야 한다. 이러한 것들은 ubuntu에 기본적으로 포함되어 있다. format에는 mkfs가 check에는 fsck가 각각 사용된다.
다음은 file sytem을 생성하는 예이다.
~$ sudo mkfs -t ext3 /dev/sda1
[sudo] password for greenfish:
mke2fs 1.41.14 (22-Dec-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
2621440 inodes, 10483298 blocks
524164 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
320 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 29 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
~$
~$ sudo mkfs -t ext3 -v -c /dev/sda1
mke2fs 1.41.14 (22-Dec-2010)
fs_types for mke2fs.conf resolution: 'ext3'
Calling BLKDISCARD from 0 to 42939588608 failed.
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
2621440 inodes, 10483298 blocks
524164 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
320 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624
Running command: badblocks -b 4096 -X -s /dev/sda1 10483297
Checking for bad blocks (read-only test): done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 24 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
~$
~$ sudo mkfs.ext3 -c /dev/sda1
mke2fs 1.41.14 (22-Dec-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
2621440 inodes, 10483298 blocks
524164 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
320 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624
Checking for bad blocks (read-only test): done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 33 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
~$
~$ sudo mkfs.ext3 -c -L label_name_ext3 /dev/sda1
mke2fs 1.41.14 (22-Dec-2010)
Filesystem label=label_name_ext3
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
2621440 inodes, 10483298 blocks
524164 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
320 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624
Checking for bad blocks (read-only test): done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 39 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
~$
- sudo mkfs -t ext3 /dev/sda1
; sda1에 ext3 file system으로 format 한다. - sudo mkfs -t ext3 -v -c /dev/sda1
; sda1에 ext3 file system으로 format 한다. bad block을 검사하고, 더 많은 정보를 보여준다. - sudo mkfs.ext3 -c /dev/sda1
; 앞선 명령과 동일하다. - sudo mkfs.ext3 -c -L label_name_ext3 /dev/sda1
; sda1에 ext3 file system으로 format 한다. 해당 파티션 label 이름을 설정한다.
virtual file system 만들기
물리적 disk로 구성되지 않은, 보다 휴대성(portable)이 높은 file system이 필요한 경우엔, virtual file system을 고려할 수 있다. 그 특징으로 virtual file system은 임의의 file system(예, ext2, ntfs, fat, ...)내의 file로 구성된다는 점이다. 해당 file을 가지고 특정 file system으로 format하고 사용한뒤, 그 file을 다른 컴퓨터에서 사용할 수 있게 한다.
이러한 virtual file system은 다음과 같이 생성할 수 있다.
~$ dd if=/dev/zero of=vfs.bin count=2048000
2048000+0 records in
2048000+0 records out
1048576000 bytes (1.0 GB) copied, 25.362 s, 41.3 MB/s
~$
즉, 0x00으로 채워진 1GB의 파일(vfs.bin)을 생성하였다.
그 용량은 아래를 참조한다.
~$ ls -la vfs.bin
-rw-r--r-- 1 greenfish greenfish 1048576000 2013-12-13 15:55 vfs.bin
~$ du -sh vfs.bin
1001M vfs.bin
~$
그럼, 해당 파일을 virtual file system으로 사용하기 위해 ext3 형식으로 아래와 같이 format 할 수 있다.
~$ mkfs.ext3 vfs.bin
mke2fs 1.41.14 (22-Dec-2010)
vfs.bin is not a block special device.
Proceed anyway? (y,n) y
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
64000 inodes, 256000 blocks
12800 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=264241152
8 block groups
32768 blocks per group, 32768 fragments per group
8000 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 38 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
~$
위 mkfs.ext3을 호출하는데 sudo가 필요없음을 주목하기 바란다.
vfs.bin 파일은 1GB이며 해당 파일은 1GB의 파티션처럼 인식되어 ext3으로 포맷되었다.
이제 해당 virtual file system을 mount해 보자.
~$ sudo mkdir /mnt/001_vfs
[sudo] password for greenfish:
~$ sudo mount -o loop vfs.bin /mnt/001_vfs
~$ ls /mnt/001_vfs/
lost+found
~$
mount -o loop 명령을 이용하여 물리적 disk로 구성된 파티션이 아닌 임의의 파일을 가지고 mount하였다.
그럼, /mnt/001_vfs/는 이제 ~/vfs.bin 파일과 연결되는 것이다. 그리고, /mnt/001_vfs/foo.bar 와 같이 파일을 생성하고 사용할 수 있다.
~$ sudo umount /mnt/001_vfs
~$
와 같이 mount를 해제하면 vfs.bin을 사용할 수 있으며, 해당 파일을 다른 컴퓨터에서 복사하여 전달한뒤, 동일하게 mount하고 사용할 수 있다.
'Research > Ubuntu' 카테고리의 다른 글
[Linux/Ubuntu 파일 시스템 관리] swap 파티션 관리하기 (0) | 2013.12.16 |
---|---|
[Linux/Ubuntu 파일 시스템 관리] File system 속성 확인과 변경 (0) | 2013.12.16 |
[Linux/Ubuntu 파일 시스템 관리] File system label 작업하기 (0) | 2013.12.13 |
[Linux/Ubuntu 파일 시스템 관리] File system 생성하고 관리하기 (parted로 파티션 크기 변경하기) (02) (2) | 2013.12.13 |
[Linux/Ubuntu 파일 시스템 관리] 기초 (0) | 2010.12.10 |