Linux で新しいディスクにパーティションを作ってマウントする
Linux に新しい空のディスクを加えて、パーティションを作って、フォーマットして、マウントするまでの一連の流れのメモです。
ディスク認識の確認
まず管理者 (root) 権限で fdisk コマンドを使って認識されているディスクを確認します。
fdisk -l コマンドを実行します。
$ sudo fdisk -l [2023/07/20 14:31:22]
Disk /dev/nvme0n1: 238.47 GiB, 256060514304 bytes, 500118192 sectors
Disk model: KBG50ZNS256G NVMe KIOXIA 256GB
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 2179EDA5-B63A-4DFB-B49D-198F8C04A70D
Device Start End Sectors Size Type
/dev/nvme0n1p1 2048 1050623 1048576 512M EFI System
/dev/nvme0n1p2 1050624 498116607 497065984 237G Linux filesystem
/dev/nvme0n1p3 498116608 500117503 2000896 977M Linux swap
Disk /dev/sda: 1.82 TiB, 2000398934016 bytes, 3907029168 sectors
Disk model: WDC WD20EZBX-00A
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
ここでは /dev/nvme0n1p1 などの NVMe SSD がシステムディスクで、/dev/sda の 1.82 TiB あるディスクが追加した新品のディスクです。
パーティションの作成
ディスクが認識できていることを確認できたので、パーティションを作成します。ここでも fdisk コマンドを使います。
先ほど確認した /dev/sda に対して管理者権限で fdisk /dev/sda を実行します。
$ sudo fdisk /dev/sda [2023/07/20 14:32:24]
Welcome to fdisk (util-linux 2.36.1).
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 0x50cf2fe6.
Command (m for help):
実行すると色々出てきます。まずは (m for help) に従って m を入れてみます。
Command (m for help): m
Help:
DOS (MBR)
a toggle a bootable flag
b edit nested BSD disklabel
c toggle the dos compatibility flag
Generic
d delete a partition
F list free unpartitioned space
l list known partition types
n add a new partition
p print the partition table
t change a partition type
v verify the partition table
i print information about a partition
Misc
m print this menu
u change display/entry units
x extra functionality (experts only)
Script
I load disk layout from sfdisk script file
O dump disk layout to sfdisk script file
Save & Exit
w write table to disk and exit
q quit without saving changes
Create a new label
g create a new empty GPT partition table
G create a new empty SGI (IRIX) partition table
o create a new empty DOS partition table
s create a new empty Sun partition table
コマンドリストが出てきます。今回は新しいパーティションを作成したいので
- n add a new partition
を使います。すると以下のようなプロンプトが出てきます。
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p):
パーティションタイプを選択します。プライマリパーティションはディスクに最大 4 つまでしか作成できません。拡張パーティションはそれ以上にパーティションを作りたいときに使うものです。今回はディスク全体を使って一つのパーティションだけ作りたいのでデフォルトの p を指定します。
続いてパーティション番号とセクタの開始位置、終了位置を指定します。
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-3907029167, default 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-3907029167, default 3907029167):
ここで、パーティション番号は最初のパーティションなので 1 を指定しています。今回はディスク全体を使いたいので、開始セクタと終了セクタはデフォルトに指定されているものをそのまま使います。
これで
Created a new partition 1 of type 'Linux' and of size 1.8 TiB.
と表示されるので 1.8 TiB のパーティションを作る準備ができたことが分かります、p コマンドを使うと確認できます。
Command (m for help): p
Disk /dev/sda: 1.82 TiB, 2000398934016 bytes, 3907029168 sectors
Disk model: WDC WD20EZBX-00A
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x50cf2fe6
Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 3907029167 3907027120 1.8T 83 Linux
新しくパーテイションが設定され、/dev/sda1 ができることになっています。
最後に w コマンドで変更内容を書き込んで終了します。
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
パーティションのフォーマット
続いて作成したパーティションをフォーマットします。今回は Linux の標準である ext4 にフォーマットします。管理者権限で mkfs コマンドを使います。-t オプションを使ってフォーマットとして ext4 を指定し、先ほど作成した /dev/sda1 をフォーマットします。
$ sudo mkfs -t ext4 /dev/sda1 [2023/07/20 15:11:15]
mke2fs 1.46.2 (28-Feb-2021)
Discarding device blocks: done
Creating filesystem with 488378390 4k blocks and 122101760 inodes
Filesystem UUID: 3a5ad979-dcf2-4e06-91ed-af4b885d3270
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
ものの数秒でできました。
システムへのマウント
パーティションを作成してフォーマットしたのでシステムにマウントします。まずはマウントポイントの作成をします。ここでは /mnt に作ることにします。例として my_storage という名前にします。
$ sudo mkdir /mnt/my_storage
作成したマウントポイントに mount コマンドを使ってマウントします。
$ sudo mount /dev/sda1 /mnt/my_storage
これでマウント完了です。
しかしこのままだと、システムが起動するたびにマウントする必要があります。それを回避するためには /etc/fstab に設定を書いておきます。
まず、ディスクパーティションを区別するための識別子である UUID を確認します。管理者権限で blkid コマンドを実行します。
$ sudo blkid
/dev/nvme0n1p1: UUID="4205-723F" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="d610ae9c-4789-4d84-b2df-9818bff6b7da"
/dev/nvme0n1p2: UUID="21df3471-17d0-4c9a-94ac-4fe83d6027f7" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="39053b53-129f-4db9-a146-4bb740d7aa07"
/dev/nvme0n1p3: UUID="4400ec5a-186d-4d29-b78e-da2c7c555fd1" TYPE="swap" PARTUUID="2e3b25a8-a906-46df-9506-d6de536c12f8"
/dev/sda1: UUID="3a5ad979-dcf2-4e06-91ed-af4b885d3270" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="50cf2fe6-01"
接続されているすべてのディスクの UUID が一覧にされます。ここでは /dev/sda1 の UUID だけコピーしておきます。
/etc/fstab を編集します。中身はすでにシステム用のマウントなどが色々書いてあるので、新しい設定を末尾に追記することにします。
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# systemd generates mount units based on this file, see systemd.mount(5).
# Please run 'systemctl daemon-reload' after making changes here.
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/nvme0n1p2 during installation
UUID=21df3471-17d0-4c9a-94ac-4fe83d6027f7 / ext4 errors=remount-ro 0 1
# /boot/efi was on /dev/nvme0n1p1 during installation
UUID=4205-723F /boot/efi vfat umask=0077 0 1
# swap was on /dev/nvme0n1p3 during installation
UUID=4400ec5a-186d-4d29-b78e-da2c7c555fd1 none swap sw 0 0
UUID=3a5ad979-dcf2-4e06-91ed-af4b885d3270 /mnt/wind_data ext4 defaults 0 0
一行には以下のような順で 5 つのフィールドを書き込みます。
- UUID
- マウントポイント
- フォーマット
- マウントオプション(今回は defaults を指定)
- dump コマンドのバックアップ対象かのフラグ(ここではバックアップしない 0 を指定)
- 起動時に fsck がチェックする順番
- 1: チェックの優先度高(ルートファイルシステムは必ず 1 を指定する)
- 2: チェックの優先度低
- 0: チェックしない
これで再起動しても同じところにマウントされるようになりました。
ディスカッション
コメント一覧
まだ、コメントがありません