1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

馬鹿の一つ覚え: ディスクのフォーマット

Last updated at Posted at 2017-05-23

Linuxでディスクのパーティション、フォーマット、ラベリング、マウント、アンマウントの一連の処理をまとめておく。まず、dmesgでデバイス名を確認し、partedでパーティションを切り、mkfs.ext4でフォーマット、e2labelでパーティションに名前を付け、マウントする。読み込み専用でマウントする場合は、オプション-r、または--read-only、あるいは-o roを添える。新しいディスクのパーティションを切る場合は mklabel gpt から実行する。

% dmesg | tail    # デバイス確認
% sudo parted /dev/sdc    # 間違えないように注意
(parted) print    # ディスクサイズやパーティションの確認、mountされていても可能
(parted) rm 1    # 既存パーティションがあり、削除したい場合は番号を指定して削除
(parted) mklabel gpt   # 初期化
(parted) print free
(parted) mkpart primary ext4 0% 100%    # ext4でなくてもとりあえずext4としておけば問題なし
(parted) unit MiB    # MiB単位で表示
(parted) print
(parted) quit
% sudo mkfs.ext4 -m 0.01 /dev/sdc1    # ext4でフォーマット
% sudo e2label /dev/sdc1 data    # パーティション名
% sudo e2label /dev/sdc1    # パーティション名の確認
% sudo mount -t ext4 /dev/sdc1 /mnt/usb3
% df -lhT

FAT32でフォーマットしたい場合はmkfs.vfatを利用する。

Bash
$ dmesg | less
$ sudo parted /dev/sda
(parted) print                                                            
(parted) rm 2                                                             
(parted) rm 1                                                             
(parted) mklabel msdos                                                    
(parted) print free                                                       
(parted) mkpart primary fat32 0% 100%                                     
(parted) quit                                                             
$ sudo mkfs.vfat -F 32 -n FOO /dev/sda1
$ sudo mount -t vfat /dev/sda1 /mnt/usb3
$ df -lTh

アンマウントできない場合、ファイルを噛んでいるプロセスが残っている可能性があるので、lsofまたはfuser -muvで確認する。

Bash
$ sudo umount /mnt/usb2
umount: /mnt/usb2: device is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))
$ sudo lsof /mnt/usb2
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF      NODE NAME
bash    18622 root  cwd    DIR   8,33     4096 106299393 /mnt/usb2/data
su      19603 root  cwd    DIR   8,33     4096 106299393 /mnt/usb2/data
$ sudo fuser -muv /mnt/usb2
                     USER        PID ACCESS COMMAND
/mnt/usb2:           root      18622 ..c.. (root)bash
                     root      19603 ..c.. (root)su

コマンドe2fsckの使い方をよく使うオプション-fpcDvとともにまとめておく。

Bash
# umount /dev/sdc1
# nohup e2fsck -fpcDv /dev/sdc1 < /dev/null > e2fsck.stdout 2> e2fsck.stderr &
# ls -l
total 4
-rw-r--r-- 1 root root   0 May 23 18:07 e2fsck.stderr
-rw-r--r-- 1 root root 524 May 24 22:14 e2fsck.stdout
# cat e2fsck.stdout 
free: Updating bad block inode.

      11 inodes used (0.00%)
       0 non-contiguous files (0.0%)
       0 non-contiguous directories (0.0%)
         # of inodes with ind/dind/tind blocks: 0/0/0
         Extent depth histogram: 1
15377150 blocks used (1.57%)
       0 bad blocks
       1 large file

       0 regular files
       2 directories
       0 character device files
       0 block device files
       0 fifos
       0 links
       0 symbolic links (0 fast symbolic links)
       0 sockets
--------
       2 files

オプション-fはとにかくファイルシステムのチェックを行う、-pは自動的に修正を行う(-nや-yとともに用いない)、-cはデバイス上の不良ブロックを探すbadblocksを実行する、-Dはディレクトリの最適化を行う、-vは詳細な情報を表示する。

UbuntuでexFATフォーマットされたディスクをマウントする。

$ dmesg | less    # デバイスを確認
$ sudo mount -t exfat /dev/sdm1 /mnt/usb3
mount: unknown filesystem type 'exfat'
$ sudo apt-get install exfat-fuse exfat-utils
$ sudo mount /dev/sdm1 /mnt/usb3
FUSE exfat 1.2.3
$ df -lhT | grep fuse
/dev/sdm1      fuseblk   932G  584G  348G  63% /mnt/usb3
$ cat /etc/os-release    # Ubuntu 16.04.3 LTS

ディスクの容量(バイト数)を確認

$ dmesg | tail
$ sudo parted /dev/sdb
GNU Parted 3.1
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) unit B
(parted) print
Error: /dev/sdb: unrecognised disk label
Model: ASMT 2115 (scsi)
Disk /dev/sdb: 1000204886016B
Sector size (logical/physical): 512B/512B
Partition Table: unknown
Disk Flags:

誰かがディスクを噛んでいてアンマウントできない場合

% sudo fuser -muv /mnt/usb3
1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?