はじめに
バックアップ用の外付け HDD を使用する必要があったため、その手順の記録しておきます。
デバイスが認識されていることを確認
マシンに接続された HDD が認識されているか確認します。
今回使用している HDD の容量は 8TB です。
$ sudo fdisk -l
# 省略
ディスク /dev/sdf: 7.28 TiB, 8001563222016 バイト, 15628053168 セクタ
Disk model: 004-2U9188
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 4096 バイト
I/O サイズ (最小 / 推奨): 4096 バイト / 4096 バイト
/dev/sdf
というパスのsdf
が接続した HDD やの具体的なデバイスファイルを指します。
Linux では HDD や USB、キーボードなどの外部デバイスをデバイスファイルとして管理しており、HDD はsda
、sdb
などのようにアルファベット順に接続されているデバイスを確認することが出来ます。
追加で接続した外付け HDD はsdf
として認識されているので、6 番目の HDDであることが分かります。
読み込まれたデバイスはアルファベット順になっていると述べましたが、起動時の読み込まれる順番によって変化するので再起動したときに
sde
などのように順番が変わっていることもあります。
$ ls -la /dev/sd*
brw-rw---- 1 root disk 8, 0 3月 6 18:07 /dev/sda
brw-rw---- 1 root disk 8, 1 3月 6 18:07 /dev/sda1
brw-rw---- 1 root disk 8, 2 3月 6 18:07 /dev/sda2
brw-rw---- 1 root disk 8, 5 3月 6 18:07 /dev/sda5
brw-rw---- 1 root disk 8, 6 3月 6 18:07 /dev/sda6
brw-rw---- 1 root disk 8, 16 3月 6 18:07 /dev/sdb
brw-rw---- 1 root disk 8, 32 3月 6 18:07 /dev/sdc
brw-rw---- 1 root disk 8, 33 3月 6 18:07 /dev/sdc1
brw-rw---- 1 root disk 8, 48 3月 6 18:07 /dev/sdd
brw-rw---- 1 root disk 8, 49 3月 6 18:07 /dev/sdd1
brw-rw---- 1 root disk 8, 64 3月 6 18:07 /dev/sde
brw-rw---- 1 root disk 8, 65 3月 6 18:07 /dev/sde1
brw-rw---- 1 root disk 8, 80 3月 6 18:08 /dev/sdf
/dev/sda1
や/dev/sda2
というのはパーティションが区切られている HDD 及び SSD でという意味で、数字無しはディスクドライブ自体を示しています。
パーティションを確認するコマンドはいくつかありますが、lsblk
コマンドで現在の状態を確認してみます。
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 111.8G 0 disk
├─sda1 8:1 0 93.2G 0 part /var/snap/firefox/common/host-hunspell
│ /
├─sda2 8:2 0 1K 0 part
├─sda5 8:5 0 9.3G 0 part /home
└─sda6 8:6 0 9.3G 0 part /var
sdb 8:16 0 232.9G 0 disk
sdc 8:32 0 465.8G 0 disk
└─sdc1 8:33 0 465.7G 0 part /home/xxxxxx/xxxxxx
sdd 8:48 0 1.8T 0 disk
└─sdd1 8:49 0 1.8T 0 part /home/xxxxxx/xxxxxx
sde 8:64 0 3.6T 0 disk
└─sde1 8:65 0 3.6T 0 part /home/xxxxxx/xxxxxx
sdf 8:80 0 7.3T 0 disk
sda
を例に見てみると、
sda
はディスクドライブを指すsda1
~sda6
のパーティションはそれぞれ MOUNTPOINTS で確認できるマウントポイントにマウントされている
以上のような事が読み取れます。
ディスクドライブのパーティションを作成
前置きが長くなりましたが、接続した HDD を利用できるようにしていきます。
パーティションを作成するコマンドはいくつかありますが、今回はparted
コマンドを使用します。
$ sudo parted /dev/sdf
GNU Parted 3.4
/dev/sdf を使用
GNU Parted へようこそ! コマンド一覧を見るには 'help' と入力してください。
(parted) help # コマンドを確認
align-check TYPE N パーティション N のアライメント(TYPE: min|opt)をチェックする
help [コマンド] ヘルプ表示。コマンド指定でそのヘルプを表示
mklabel,mktable ラベルの種類 新しいラベル(パーティションテーブル)を作る
mkpart PART-TYPE [FS-TYPE] START END パーティションを作成
name NUMBER 名前 パーティションに名前をつける
print [devices|free|list,all|NUMBER]
パーティションテーブルや、利用可能なデバイス、空き領域、
見つかった全てのパーティション、あるいは特定のパーティションについ て表示する
quit プログラムを終了する
rescue 開始 終了 開始、終了で指定した範囲付近にあるパーティションを復活させる
resizepart NUMBER END パーティション NUMBER を END にリサイズする
rm NUMBER パーティションを削除する
select デバイス 操作するデバイスを選択
disk_set FLAG STATE 選択したデバイスの FLAG を変更
disk_toggle [FLAG] 選択したデバイスの FLAG の状態をトグル
set NUMBER フラグ 状態 ファイルシステムのフラグと状態を設定する
toggle [NUMBER [FLAG]] パーティションのフラグの状態を反転する
unit UNIT デフォルトの単位を UNIT にする
version GNU Parted のバージョンと著作権情報を表示
(parted) help mklabel # 作成するラベルの種類を確認
mklabel,mktable ラベルの種類 新しいラベル(パーティションテーブル)を作る
ラベルの種類は次のうちから選びます: aix, amiga, bsd, dvh, gpt, mac, msdos, pc98, sun, atari, loop
(parted) mklabel gpt # 8TBなのでGPT(GUIDパーティションテーブル)を指定
(parted) mkpart # パーティションを作成
パーティションの名前? []? DataBackup # 適当な名前を作成(指定しなくても良い)
ファイルシステムの種類? [ext2]? ext4 # ファイルシステムを指定(ext4はLinuxで標準的に使用されている)
開始? 0% # 開始位置を指定
終了? 100% # 終了位置を指定
(parted) p # パーティションが正しく作成されたか確認
モデル: ST8000DM 004-2U9188 (scsi)
ディスク /dev/sdf: 8002GB
セクタサイズ (論理/物理): 512B/4096B
パーティションテーブル: gpt
ディスクフラグ:
番号 開始 終了 サイズ ファイルシステム 名前 フラグ
1 1049kB 8002GB 8002GB ext4 DataBackup
(parted) q # コマンドを終了
通知: 必要であれば /etc/fstab を更新するのを忘れないようにしてください。
パーティションをフォーマットする
次に作成したパーティションをフォーマットします。
$ sudo mkfs.ext4 /dev/sdf1
mke2fs 1.46.5 (30-Dec-2021)
/dev/sdf1 contains a ext4 file system
created on Wed Mar 20 16:08:39 2024
Proceed anyway? (y,N) y # y を入力し次に進む
Creating filesystem with 1953506304 4k blocks and 244191232 inodes
Filesystem UUID: b745d81d-07b4-4500-a9d6-a52afd096df6
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848, 512000000, 550731776, 644972544, 1934917632
Allocating group tables: done
Writing inode tables: done
Creating journal (262144 blocks): done # しばらく放置するとデフォルト値が設定される
Writing superblocks and filesystem accounting information: done # エンターを押さなくてもしばらく放置すると終了する
マウントポイントにマウントさせる
フォーマットしたパーティションをマウントポイントを作成してマウントしていきます。
$ mkdir ~/Big_Size_Backup
$ sudo mount /dev/sde1 ~/Big_Size_Backup
$ df -h
# 省略
/dev/sde1 7.3T 28K 6.9T 1% /home/user01/Big_Size_Backup
作成したディレクトリに HDD がマウントされました。
fstab に登録
外部デバイスのマウントは一時的なもので、再起動やシャットダウンしてしますと次回起動時にマウントの設定は消えていまします。
そのため、外部 HDD を毎回自動的にマウントしたい場合は、その設定を/etc/fstab
に登録します。
# 外部HDDのUUIDを確認する
$ lsblk -f
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
# 省略
sde
└─sde1 ext4 1.0 b745d81d-07b4-4500-a9d6-a52afd096df6 6.9T 0% /home/user01/Big_Size_Backup
# 設定ファイルのバックアップを作成
$ sudo cp /etc/fstab /etc/fstab.bak
$ sudo vim /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).
#
# <file system> <mount point> <type> <options> <dump> <pass>
# 中略
# ファイルの末尾に以下を記述↓
UUID=b745d81d-07b4-4500-a9d6-a52afd096df6 /home/user01/Big_Size_Backup ext4 nofail 0 0
# サーバを再起動
$ sudo reboot
サーバを再起動して起動時に HDD がマウントされていることを確認してください。
マウントされていない場合は設定を見直してください。
Linux の学習におすすめの参考書
簡単なアン ケートに答えると、無料の PDF がダウンロード出来ます。
開発者でも知っておくと役に立つと思いますので是非手にとって勉強してみてください。