UbuntuでUSB外付けドライブを使用する

ストレージの容量が足りなくなってきたのでUSB外付けドライブを使用できるようにした

設定メモ

USB外付けドライブを接続する

認識されているか確認する

┌─╼ | up 6 days, 22:40, 1 user | [~]
└────╼ $ lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
loop0         7:0    0    55M  1 loop /snap/core18/1880
loop1         7:1    0  55.5M  1 loop /snap/core18/1988
loop2         7:2    0  31.1M  1 loop /snap/snapd/11036
loop3         7:3    0  32.3M  1 loop /snap/snapd/11107
loop4         7:4    0  69.9M  1 loop /snap/lxd/19188
loop5         7:5    0  71.3M  1 loop /snap/lxd/16099
sda           8:0    0 953.9G  0 disk
nvme0n1     259:0    0 119.2G  0 disk
├─nvme0n1p1 259:1    0   512M  0 part /boot/efi
└─nvme0n1p2 259:2    0 118.8G  0 part /

今回接続した1TBのSSDは/dev/sdaとして認識されていた

Linuxパーティションを作成する

┌─╼ | up 6 days, 22:42, 1 user | [~]
└────╼ $ sudo fdisk /dev/sda
[sudo] password for administrator:

Welcome to fdisk (util-linux 2.34).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0xc3df6d5e.

Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1):
First sector (2048-2000409263, default 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-2000409263, default 2000409263):

Created a new partition 1 of type 'Linux' and of size 953.9 GiB.

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

ext4形式で初期化する

┌─╼ | up 6 days, 22:43, 1 user | [~]
└────╼ $ sudo mkfs -t ext4 /dev/sda1
mke2fs 1.45.5 (07-Jan-2020)
Creating filesystem with 250050902 4k blocks and 62513152 inodes
Filesystem UUID: 55d9d5c5-addd-4325-a6f6-df54f451c957
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
        102400000, 214990848

Allocating group tables: done
Writing inode tables: done
Creating journal (262144 blocks): done
Writing superblocks and filesystem accounting information: done

いつもマウントされるようにする

マウントポイントを作成する

┌─╼ | up 6 days, 22:46, 1 user | [~]
└────╼ $ sudo mkdir /mnt/usb-ssd

/etc/fstabを書き換える

┌─╼ | up 6 days, 22:50, 1 user | [~]
└────╼ $ sudo nano /etc/fstab
# USB SSD
/dev/disk/by-uuid/55d9d5c5-addd-4325-a6f6-df54f451c957 /mnt/usb-ssd ext4 defaults,discard,nofail 0 0

常時使用するドライブならmkfsコマンドを実行したときのFilesystem UUIDを使ってデバイスを指定しておいた方がベター

マウントオプション

fstabより

  • defaults:使われるファイルシステムのデフォルトのマウントオプション
    ext4 のデフォルトのオプションは: rw, suid, dev, exec, auto, nouser, async
  • auto:起動時、または mount -a コマンドが実行されたときに自動でマウントします
  • noauto:自動ではマウントしません
  • exec:ファイルシステム上のバイナリの実行を許可します
  • noexec:ファイルシステム上のバイナリの実行を禁止します
  • ro:ファイルシステムを読み込み専用でマウント
  • rw:ファイルシステムを読み書き可能でマウント
  • user:全てのユーザーにファイルシステムのマウントを許可します
    上書きしないかぎり、自動で noexec, nosuid, nodev も有効になります
  • users:ユーザーグループに入っている全てのユーザーにファイルシステムのマウントを許可します
  • nouser:root だけにファイルシステムのマウントを許可します
  • owner:デバイスの所有者にマウントを許可します
  • sync:I/O は同期的に行なわれます
  • async:I/O は非同期で行われます
  • dev:ファイルシステム上の特別なデバイスを解釈します
  • nodev:ファイルシステム上の特別なデバイスを解釈しません
  • suid:suid や sgid ビットの操作を許可します
    ほとんどの場合、一時的な権限で特別な作業を行うためにユーザーがバイナリ実行可能ファイルを実行できるようにするため使われます
  • nosuid:suid や sgid ビットの操作を禁止します
  • noatime:ファイルシステムの inode アクセス日時を更新しません
    パフォーマンスの向上に役立ちます (#atime オプション を見て下さい)
  • nodiratime:ファイルシステムのディレクトリの inode アクセス日時を更新しません
    パフォーマンスの向上に役立ちます (#atime オプション を見て下さい)
  • relatime:変更日時にあわせて inode アクセス日時を更新します
    以前のアクセス日時が現在の変更日時よりも前のときだけアクセス日時が更新されます (noatime に似ていますが、変更されたあとファイルが読み込まれたか知る必要がある mutt などのアプリケーションを破壊しません)
    パフォーマンスの向上に役立ちます (#atime オプションを見て下さい)
  • discard:ブロックがフリーになったときにブロックデバイスに TRIM コマンドを実行します
    ファイルシステムが SSD 上にあるときは使うことが推奨されています
  • flush:データを頻繁にフラッシュする vfat のオプション 全てのデータが書き込まれるまではコピーダイアログやプログレスバーは止まったままになります
  • nofail:存在するときはデバイスをマウントし、存在しないときは無視します 起動時にリムーバブルメディアのエラーが報告されるのを防止します
┌─╼ | up 6 days, 22:55, 1 user | [~]
└────╼ $ df
Filesystem               1K-blocks        Used  Available Use% Mounted on
udev                       8092916           0    8092916   0% /dev
tmpfs                      1627372        1572    1625800   1% /run
/dev/nvme0n1p2           122029712    41305948   74481972  36% /
tmpfs                      8136856      352992    7783864   5% /dev/shm
tmpfs                         5120           0       5120   0% /run/lock
tmpfs                      8136856           0    8136856   0% /sys/fs/cgroup
/dev/nvme0n1p1              523248        7988     515260   2% /boot/efi
/dev/loop0                   56320       56320          0 100% /snap/core18/1880
/dev/loop1                   56832       56832          0 100% /snap/core18/1988
/dev/loop2                   31872       31872          0 100% /snap/snapd/11036
/dev/loop3                   33152       33152          0 100% /snap/snapd/11107
/dev/loop4                   71680       71680          0 100% /snap/lxd/19188
/dev/loop5                   73088       73088          0 100% /snap/lxd/16099
tmpfs                      1627368          16    1627352   1% /run/user/1000
/dev/sda1                983456500   179340280  754089656  20% /mnt/usb-ssd