対象環境
- Raspberry Pi 3 Model B
- Raspbian Jessie 2016-09-23
前回
前回、SSDに1つのパーティションを設定し、ブート時にrootパーティションとして使用するように設定した。
これにより、書込先がSDカードからSSDになった。SDカードの延命ができた。
今回
240GBのSSDに対し、fdisk
コマンドで複数のパーティションを作成する。
パーティションテーブルはmsdos
。プライマリと拡張、2種類のパーティションを作成する。
/dev/ |
Size(GiB) | PartitionType | 用途 |
---|---|---|---|
sda1 |
8 | primary[1] | rootパーティションに割り当てる |
sda2 |
120 | primary[2] | 予備(システム拡張用、パーティション再編集用) |
sda5 |
40 | logical | /home パーティションに割り当てる |
sda6 |
30 | logical | 予備(/var など割り当てたほうがよさげなもの用) |
sda7 |
25.6 | logical | NAS用(実験用) |
おさらい
パーティション・テーブル
記憶装置はパーティションを設定することで、その記憶領域を利用できるようになる。
パーティション設定するには、パーティション・テーブルのデータが必要。
パーティション・テーブルには複数の種類がある。
パーティション・テーブル | 概要 |
---|---|
msdos(MBR) | 一般的らしい。 |
GTP | 2TB以上のサイズに対応。 |
fdisk
コマンドで操作できるのはmsdos
。GTP
には非対応。
msdos
msdos
には、2種類のパーティションがある。
種類 | 上限数 | 概要 |
---|---|---|
プライマリ・パーティション | 4 | ふつうのパーティション。 |
拡張パーティション | 1 | 1つの拡張パーティションの中にいくつでも論理パーティションを作成できる。 |
プライマリ、拡張、両パーティションあわせて4つまでしか作成できない。プライマリ3つ、拡張1つ、計4つが最大数。そして、拡張パーティションの中に論理パーティションを容量が許す限り作成できる。
パーティション
1台の記憶装置を、論理的に分離すること。
たとえば、240GBのSSDを、200GB, 40GBの2つに論理的に分ける。 パーティションを設定せねば使えない。2つ以上にわけず、1つでもいい。
マウント
マウント
とは、OSが記憶装置を利用できるようにする操作のこと。
パーティションが割り当てられた領域を、指定のマウントポイント(パス)に割り当てる。 こうすることで、パスを指定すれば、その記憶装置にアクセスすることができる。
Windowsではデバイスや、そのパーティションごとに、自動でドライブレターが割り当てられる。
D:\
, E:\
, F:\
など。それを手動で、任意のパスに設定するのがマウント。
逆に取り外す操作をアンマウント
という。Windowsでいう「ハードウェアの安全な取り外し」に該当する。
fdiskコマンド
fdisk -l
認識している記憶装置のIDを一覧表示する。IDは/dev/*
のパス。
fdisk /dev/sda1
記憶装置のIDを渡して、パーティション作成の対話画面に入る。
今回は対象のSSDが/dev/sda1
として話を進める。
パーティション設定してみる
size | type |
---|---|
8 GiB | primary[1] |
120 GiB | primary[2] |
残り全部(95.6 GiB) | extended |
プライマリ・パーティション2つ、拡張パーティション1つを作成する。
size | type |
---|---|
40 GiB | logical |
30 GiB | logical |
残り全部(25.6 GiB) | logical |
/dev/ |
Size(GiB) | PartitionType | 用途 |
---|---|---|---|
sda1 |
8 | primary[1] | rootパーティション |
sda2 |
120 | primary[2] | 予備(システム拡張用、パーティション再編集用) |
sda5 |
40 | logical | /home パーティション |
sda6 |
30 | logical | 予備(/var など割り当てたほうがよさげなもの用) |
sda7 |
25.6 | logical | NAS用(実験用) |
おそらく将来、rootパーティションや/home
パーティションは拡大していく。
パーティション編集開始
pi@raspberrypi:~ $ sudo fdisk /dev/sda
8GBのプライマリ・パーティション作成
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): 1 First sector (2048-468862125, default 2048): Last sector, +sectors or +size{K,M,G,T,P} (2048-468862125, default 468862125): +8G Created a new partition 1 of type 'Linux' and of size 8 GiB.
120GBのプライマリ・パーティション作成
Command (m for help): n Partition type p primary (1 primary, 0 extended, 3 free) e extended (container for logical partitions) Select (default p): p Partition number (2-4, default 2): 2 First sector (16779264-468862125, default 16779264): Last sector, +sectors or +size{K,M,G,T,P} (16779264-468862125, default 468862125): +120G Created a new partition 2 of type 'Linux' and of size 120 GiB.
拡張パーティション作成
Command (m for help): n Partition type p primary (2 primary, 0 extended, 2 free) e extended (container for logical partitions) Select (default p): e Partition number (3,4, default 3): 3 First sector (268437504-468862125, default 268437504): Last sector, +sectors or +size{K,M,G,T,P} (268437504-468862125, default 468862125): Created a new partition 3 of type 'Extended' and of size 95.6 GiB.
Last sector, ...
の値を未入力(default)にすることで、残り全部を指定できる。
論理パーティション作成
拡張パーティションを作成すると、コマンドが以下のように変更される。
before
Command (m for help): n Partition type p primary (2 primary, 0 extended, 2 free) e extended (container for logical partitions)
after
Command (m for help): n Partition type p primary (2 primary, 1 extended, 1 free) l logical (numbered from 5)
論理パーティション
早速、l
(logical
)コマンドで論理パーティションを作成する。
拡張パーティションは95.6 GiB。論理パーティションはその95.6GiBの中に作成する。
size | type |
---|---|
40 GiB | primary[1] |
30 GiB | primary[2] |
残り全部(25.6 GiB) | extended |
40GBの論理パーティション作成
Command (m for help): n Partition type p primary (2 primary, 1 extended, 1 free) l logical (numbered from 5) Select (default p): l Adding logical partition 5 First sector (268439552-468862125, default 268439552): Last sector, +sectors or +size{K,M,G,T,P} (268439552-468862125, default 468862125): +40G Created a new partition 5 of type 'Linux' and of size 40 GiB.
30GBの論理パーティション作成
Command (m for help): n Partition type p primary (2 primary, 1 extended, 1 free) l logical (numbered from 5) Select (default p): l Adding logical partition 6 First sector (352327680-468862125, default 352327680): Last sector, +sectors or +size{K,M,G,T,P} (352327680-468862125, default 468862125): +30G Created a new partition 6 of type 'Linux' and of size 30 GiB.
残り全部(25.6GB)の論理パーティション作成
Command (m for help): n Partition type p primary (2 primary, 1 extended, 1 free) l logical (numbered from 5) Select (default p): l Adding logical partition 7 First sector (415244288-468862125, default 415244288): Last sector, +sectors or +size{K,M,G,T,P} (415244288-468862125, default 468862125): Created a new partition 7 of type 'Linux' and of size 25.6 GiB.
パーティションの確認
Command (m for help): p Device Boot Start End Sectors Size Id Type /dev/sda1 2048 16779263 16777216 8G 83 Linux /dev/sda2 16779264 268437503 251658240 120G 83 Linux /dev/sda3 268437504 468862125 200424622 95.6G 5 Extended /dev/sda5 268439552 352325631 83886080 40G 83 Linux /dev/sda6 352327680 415242239 62914560 30G 83 Linux /dev/sda7 415244288 468862125 53617838 25.6G 83 Linux
パーティションの書込
変更を確定させる。
Command (m for help): w The partition table has been altered. Calling ioctl() to re-read partition table. Re-reading the partition table failed.: デバイスもしくはリソースがビジー状態です The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8).
パーティションの確認
fdisk -l
でパーティションをリストアップする。
pi@raspberrypi:~ $ sudo fdisk -l Disk /dev/ram0: 4 MiB, 4194304 bytes, 8192 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk /dev/ram1: 4 MiB, 4194304 bytes, 8192 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk /dev/ram2: 4 MiB, 4194304 bytes, 8192 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk /dev/ram3: 4 MiB, 4194304 bytes, 8192 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk /dev/ram4: 4 MiB, 4194304 bytes, 8192 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk /dev/ram5: 4 MiB, 4194304 bytes, 8192 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk /dev/ram6: 4 MiB, 4194304 bytes, 8192 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk /dev/ram7: 4 MiB, 4194304 bytes, 8192 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk /dev/ram8: 4 MiB, 4194304 bytes, 8192 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk /dev/ram9: 4 MiB, 4194304 bytes, 8192 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk /dev/ram10: 4 MiB, 4194304 bytes, 8192 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk /dev/ram11: 4 MiB, 4194304 bytes, 8192 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk /dev/ram12: 4 MiB, 4194304 bytes, 8192 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk /dev/ram13: 4 MiB, 4194304 bytes, 8192 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk /dev/ram14: 4 MiB, 4194304 bytes, 8192 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk /dev/ram15: 4 MiB, 4194304 bytes, 8192 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk /dev/mmcblk0: 14.5 GiB, 15523119104 bytes, 30318592 sectors 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: dos Disk identifier: 0xc06b0477 Device Boot Start End Sectors Size Id Type /dev/mmcblk0p1 8192 137215 129024 63M c W95 FAT32 (LBA) /dev/mmcblk0p2 137216 30318591 30181376 14.4G 83 Linux Disk /dev/sda: 223.6 GiB, 240057408512 bytes, 468862126 sectors 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: dos Disk identifier: 0x2063388e Device Boot Start End Sectors Size Id Type /dev/sda1 2048 16779263 16777216 8G 83 Linux /dev/sda2 16779264 268437503 251658240 120G 83 Linux /dev/sda3 268437504 468862125 200424622 95.6G 5 Extended /dev/sda5 268439552 352325631 83886080 40G 83 Linux /dev/sda6 352327680 415242239 62914560 30G 83 Linux /dev/sda7 415244288 468862125 53617838 25.6G 83 Linux
ext4でフォーマットする
以下のログはsda5
, sda6
, sda7
のみだが、sda1
, sda2
に関しても同様。
まず、念のためアンマウントする。
pi@raspberrypi:~ $ umount /dev/sda5 umount: /dev/sda5: not mounted pi@raspberrypi:~ $ umount /dev/sda6 umount: /dev/sda6: not mounted pi@raspberrypi:~ $ umount /dev/sda7 umount: /dev/sda7: not mounted
次に、ext4でフォーマットする。データが全部消えるので注意。
pi@raspberrypi:~ $ sudo mkfs.ext4 /dev/sda5 mke2fs 1.42.12 (29-Aug-2014) Creating filesystem with 10485760 4k blocks and 2621440 inodes Filesystem UUID: ab5c4cda-6f0c-4d7e-9281-028f6cec6cc7 Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done
pi@raspberrypi:~ $ sudo mkfs.ext4 /dev/sda6 mke2fs 1.42.12 (29-Aug-2014) Creating filesystem with 7864320 4k blocks and 1966080 inodes Filesystem UUID: 2bf9a343-098f-4325-b3a8-91a50848f47f Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done
pi@raspberrypi:~ $ sudo mkfs.ext4 /dev/sda7 mke2fs 1.42.12 (29-Aug-2014) Creating filesystem with 6702229 4k blocks and 1676080 inodes Filesystem UUID: e46c667d-9f7b-4928-9fc0-9253d9175958 Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done
rootパーティション割当
ラズパイのrootパーティションへ割当する方法は前回を参照。/boot/cmdline.txt
のroot=
に/dev/sda1
など割当したいデバイスを設定する。
分配
今回の場合は/dev/sda1
(8GiB)を割り当てる。容量が少なすぎるが、足りなくなったら拡張する。そのための/dev/sda2
(120GiB)。アップデートしているとすぐに越えるかもしれない。アプリをインストールしまくったら、とても足りない。
その前に、/dev/sda5
(40GiB)に/home
をマウントポイントとして割当したい。ユーザデータだけでも容量の多い領域を割り当てておけば当面は大丈夫、と思いたい。
マウント
/home
はmount
コマンドで割り当てるということでいいのだろうか?いずれ試す。
所感
思ったようにパーティションを分けることができたっぽい。次はマウントか。