$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 119.2G 0 disk ├─sda1 8:1 0 84.5G 0 part └─sda6 8:6 0 28.9G 0 part / mmcblk0 179:0 0 7.5G 0 disk ├─mmcblk0p2 179:2 0 6.8G 0 part /media/qkboo/ROOT ├─mmcblk0p3 179:3 0 486.1M 0 part └─mmcblk0p1 179:1 0 200M 0 part /media/qkboo/EFI
parted 사용
파티션 및 포맷을 위해 마운트된 파티션을 언마운트 한다. parted 는 상호작용 프롬프트에서 사용하거나 단일 명령어로 사용할 수 있다.
parted 프롬프트 사용
[ext4 파티션 생성]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
sudo parted /dev/sdb (parted) print Number Start End Size File system Name Flags 1 0.00GB 32.0GB 32.0GB
(parted) mklabel gpt Warning: The existing disk label on /dev/sda will be destroyed and all data on this disk will be lost. Do you want to continue? Yes/No? y
(parted) unit GB (parted) mkpart primary 0 1000.0GB #디스크 크기 입력
(parted) print Number Start End Size File system Name Flags 1 0.00GB 32.0GB 32.0GB primary lvm (parted) quit
[fat32 파티션 생성]
USB 스토리지는 아래 같이 나타난다. 다음은 USB 파티션에 fat32 파일시스템을 프롬프트로 생성하고 있다.
1 2 3 4 5
sudo parted /dev/mmcblk0 (parted) mklabel msdos (parted) mkpart primary fat32 1MiB 100% (parted) set 1 boot on (parted) quit
생성한 파티션에 시스템 지원 파일 시스템을 생성해야 한다. 해당 파일 시스템으로 파티션을 포맷한 후에 지정한 디렉토리에 마운트를 해서 사용하면 된다. 지속적인 사용을 위해서 /etc/fstab 에 파티션을 마운트 포인트로 등록하면 재시동 후에도 동일한 폴더에 마운트 된다.
mkfs
mkfs 명령은 파일 시스템에 따랴서 -t 옵션에 파일시스템을 지시하거나 mkfs.[FS] 형식을 명령을 바로 쓰기도 한다.
Device Start End Sectors Size Type /dev/sdb1 2048 8390655 8388608 4G Linux swap /dev/sdb2 8390656 125042654 116651999 55.6G Linux LVM
fdisk 결과의 Sector size는 전체 용량과 섹터 크기를 계산하면 논릭적인 섹터의 크기를 확인할 수 있다.
1 2
echo $((64021856256/125042688)) 512
Sector size (logical/physical): 512 bytes / 512 bytes 에서 물리 크기를 확인할 수 있다.
성능
dd 를 사용해서 1024 바이트를 1000000 블록에 걸쳐 쓰기를 수행한다 - 1GB
1
$ time sudo dd bs=1024 count=1000000 if=/dev/zero of=1GB_file
dd 를 사용해서 1GB 크기 파일을 1024 바이트씩 읽기를 한다.
1
$ time sudo dd bs=1024 if=1GB_file of=/dev/null
Verbose output
Sending an INFO signal to a running dd process makes it print I/O statistics to standard error and then resume copying. In the example below, dd is run in the background to copy 10 million blocks. The kill command makes it output intermediate I/O statistics, and when dd completes normally or is killed by the SIGINT signal, it outputs the final statistics.
1 2 3 4 5 6 7 8
$ dd if=/dev/zero of=/dev/null count=10MB & pid=$! $ kill -s INFO $pid; wait $pid 3385223+0 records in 3385223+0 records out 1733234176 bytes (1.7 GB) copied, 6.42173 seconds, 270 MB/s 10000000+0 records in 10000000+0 records out 5120000000 bytes (5.1 GB) copied, 18.913 seconds, 271 MB/s
On systems lacking the INFO signal dd responds to the USR1 signal instead, unless the POSIXLY_CORRECT environment variable is set.
You can also try the status=progress option:
1 2 3 4 5 6
[~]$ dd if=/dev/zero of=/dev/null count=10MB status=progress 4708234752 bytes (4.7 GB, 4.4 GiB) copied, 4 s, 1.2 GB/s 10000000+0 records in 10000000+0 records out 5120000000 bytes (5.1 GB, 4.8 GiB) copied, 4.3516 s, 1.2 GB/s [~]$
$ file /bin/ls ELF 32-bit LSB executable, ARM, EABI5 version 1 .. ARM arm 7 is 32 bit. ARMv8-A, October 2011, 64-bit address space and 64-bit arithmetic 지원