ファイル
ディスクとファイルシステム
mount・fdisk・mkfs・fsck・dd など、ディスクやUSBメモリ、イメージファイルを扱うコマンド。
lsblkディスクとパーティションの一覧
つながっているディスクとパーティションを木の形で一覧します。
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 388.4M 1 disk
sdc 8:32 0 1T 0 disk /
$ lsblk -f # ファイルシステムの種類・ラベル・UUIDも表示
$ lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINTSblkidUUID と種類を調べる
パーティションの UUID やファイルシステムの種類を調べます。
$ sudo blkid
$ sudo blkid /dev/sdb1 -s UUID -o value # UUID だけmount / umountマウントする / 外す
ディスクやイメージファイルをフォルダにつないで(マウントして)使えるようにしたり、外したりします。
$ sudo mount /dev/sdb1 /mnt/usb
$ sudo mount -o ro /dev/sdb1 /mnt/usb # 読み取り専用
$ sudo mount -o loop disk.img /mnt/img # イメージファイルをマウント
$ sudo mount -t tmpfs -o size=1G tmpfs /mnt/ram # メモリ上のディスク
$ sudo umount /mnt/usb
$ sudo umount -l /mnt/usb # 使用中でも切り離す(遅延)
$ mount | column -t # マウント中の一覧findmntマウントの状態を木で見る
何がどこにマウントされているかを木の形で表示します。
$ findmnt
$ findmnt / # そこに何がマウントされているか
$ findmnt -t ext4mountpointマウントポイントかどうか
そのフォルダがマウントポイントかどうかを確かめます。
$ mountpoint -q /mnt/backup && echo "マウント済み"/etc/fstab — 起動時の自動マウント
# <デバイス> <マウント先> <種類> <オプション> <dump> <fsck>
UUID=1b2c3d4e-... /data ext4 defaults,noatime 0 2$ sudo mount -a # fstab の内容を今すぐマウント(書き間違いの確認にもなる)fdiskパーティションを作る(MBR / GPT)
ディスクのパーティションを表示・作成・削除します。
$ sudo fdisk -l # すべてのディスクのパーティション
$ sudo fdisk /dev/sdb # 対話的に編集(n 作成、d 削除、p 表示、w 書き込み、q 保存せず終了)parted大きなディスクや GPT の編集
GPT や大きなディスクのパーティションを編集します。
$ sudo parted /dev/sdb print
$ sudo parted /dev/sdb --script mklabel gpt mkpart primary ext4 0% 100%sgdiskGPT をスクリプトで操作する
GPT のパーティションをコマンドだけで操作します。
$ sudo sgdisk -p /dev/sdb
$ sudo sgdisk -Z /dev/sdb # パーティション表を消す(注意)mkfsファイルシステムを作る(フォーマット)
パーティションにファイルシステムを作ります(いわゆるフォーマット)。中身はすべて消えます。
$ sudo mkfs.ext4 -L data /dev/sdb1 # ext4(ラベル data)
$ sudo mkfs.vfat -F 32 -n USB /dev/sdb1 # FAT32(Windows・Macとも読める)
$ sudo mkfs.ntfs -f /dev/sdb1 # NTFS(ntfs-3g)fsckファイルシステムを検査・修復する
ファイルシステムの不整合を検査・修復します。
$ sudo umount /dev/sdb1 # 先に外す
$ sudo fsck -f /dev/sdb1
$ sudo e2fsck -p /dev/sdb1 # 自動で安全な修復だけ行うtune2fs / resize2fsext4 の設定とサイズ変更
ext4 の設定を変えたり、パーティションを広げたあとにファイルシステムも広げたりします。
$ sudo tune2fs -l /dev/sdb1 | head # 設定の確認
$ sudo tune2fs -L newlabel /dev/sdb1 # ラベルを変える
$ sudo resize2fs /dev/sdb1 # パーティションを広げたあと、ファイルシステムも広げるddディスクをそのまま読み書きする
ディスクやファイルをバイト単位でそのままコピーします。USB メモリに ISO を書き込むのによく使います。
$ sudo dd if=ubuntu.iso of=/dev/sdb bs=4M status=progress conv=fsync # USBに書き込む
$ sudo dd if=/dev/sda of=disk.img bs=4M status=progress # ディスクをイメージに
$ dd if=/dev/zero of=test.bin bs=1M count=100 # 100MBのファイルを作る
$ dd if=/dev/urandom bs=32 count=1 2>/dev/null | base64 # ランダムな文字列fallocate大きなファイルを一瞬で作る
指定した大きさのファイルを一瞬で作ります。
$ fallocate -l 2G big.imglosetupイメージファイルをデバイスとして扱う
イメージファイルをディスクのように扱えるようにします。
$ sudo losetup -fP --show disk.img # /dev/loop0 などにつなぐ(パーティションも認識)
$ sudo losetup -l # 一覧
$ sudo losetup -d /dev/loop0 # 外すmkswap / swaponスワップを作る
スワップ(メモリが足りないときに使うディスク上の領域)を作って有効にします。
$ sudo fallocate -l 4G /swapfile
$ sudo chmod 600 /swapfile
$ sudo mkswap /swapfile
$ sudo swapon /swapfile
$ swapon --showsync書き込みを確定させる
USB メモリを抜く前や、dd のあとに実行します。
$ syncwipefsファイルシステムの目印を消す
ディスクからファイルシステムの目印を消します。
$ sudo wipefs /dev/sdb # 見るだけ
$ sudo wipefs -a /dev/sdb # すべて消す(注意)