外付けHDDを増設する
![](https://piyolabo.net/wp-content/uploads/2019/09/hddadd-logo.png)
HDDの空き容量が足りない!!
僕は UNIX/Linux系のOSのひとつ Ubuntu で samba というファイル共有ソフトを運用しています。
共有ソフトで扱うデータは以前と異なり、音声データや動画データなど大容量のものが多くなり、古いノートパソコンに付いてきたHDD(ハードディスク)がすぐにデータでいっぱいになってしまいました。
そんな時は、USBの外付けHDDを Ubuntu に追加してHDD(ハードディスク)の空き容量を確保します。
外付けUSBハードディスク接続の手順
- USBポータブルHDDを接続する。
- dmesgコマンドで、どのように認識されたかチェックする。
$ dmesg [オプション]
外付けHDDをUSB接続し、どのデバイスが追加されたかを dmesg で確認します。
- sudo fdisk -l | grep -5 sd で、ハードディスクの一覧を表示・確認します。
- fdiskコマンドを使ってパーティションを作成します。
sudo mkfs -t ext4 /dev/sdb
で追加した外付けHDDをext4形式でフォーマットします。- /mnt/hogehoge に外付けHDDをマウントします。
- Ubuntu起動時に外付けHDDを /mnt/hogehoge にマウントするように /etc/fstab を編集します。
$ sudo fdisk /dev/sdb
p [基本領域にパーティションを作成]
1 [番号は1番 そのまま]
最初セクタ [そのまま]
Lastセクタ [開始位置から容量で指定できる、便利]
p 内容を確認して、問題がない事を確認
w 書き込む(パーティションを作成)
$ sudo mkdir /mnt/hogehoge
sudo mount -t ext4 /dev/sdb /mnt/hogehoge
Ubuntu 起動時に外付けHDDをマウントする
Ubuntu 起動時に外付けHDDが /mnt/hogehoge にマウントするように設定します。
外付けHDDのUUIDを調べます。
sudo blkid | grep sd
/etc/fstab に次の1行を追加・保存します。
マウントの設定を書いておくことで、デバイスのみの指定、あるいはマウントポイントのみの指定でマウントできるようになります。今回のようにデバイスの代わりにUUIDを指定する事ができます。
カーネルが出力したメッセージを表示するコマンド dmesg
$ dmesg [オプション]
外付けHDDをUSB接続し、どのデバイスが追加されたかを dmesg で確認します。
$ sudo dmesg | grep sd
ハードディスクのパーティションを設定するコマンド fdisk
ハード・ディスクのパーティションを設定する。
$ fdisk (オプション) デバイス
-b ブロック | デバイスのブロック・サイズを指定する |
-C シリンダ | デバイスのシリンダ数を指定する |
-H ヘッダ | デバイスのヘッダ数を指定する |
-S セクター | デバイスの1トラックあたりのセクター数を指定する |
-l | マウントされているデバイスのパーティション情報を表示する |
-u | -lオプションを利用する際,容量をシリンダ数単位で表示する |
-s パーティション | 指定したパーティションの容量を表示する。容量はブロック数 |
fdiskの基本コマンド
m | 利用可能なコマンドを一覧する |
n | 新しいパーティションを作成する |
t | パーティション・タイプを変更する。初期値は”Linux |
a | ブートの可否を切り替える |
b | BSD用パーティションのディスク・ラベルを編集する |
c | DOSコンパチブルの可否を切り替える |
d | パーティションを削除する |
l | 利用可能なパーティション・タイプを表示する |
o | DOSパーティションを作成する |
p | パーティション情報を表示する |
q | パーティション情報を保存せずに終了する |
s | SUN用の新しいディスク・ラベルを作成する |
u | 容量の表示単位を切り替える |
v | パーティションを検査する |
w | パーティション情報を書き込んで,終了する |
ハードディスクをフォーマットするコマンド mkfs
$ mkfs [オプション] デバイス名(パーティション)
オプション | 意味 |
-t | ファイルシステムのタイプを指定。指定しなかった場合は、ext2が用いられる。 |
-c | ファイルシステムを作成する前に、デバイスに対して不良ブロックの検査を行う |
ファイルシステムの種類
名前 | 最大ファイルサイズ | 備考 |
ext2 | 2TB | Linuxオペレーティングシステムで広く利用されていたファイルシステムである。初期のextファイルシステムを拡張したもの。 |
ext3 | 16GB~2TB | ext2にジャーナリングシステム機能が追加されたもの。Linuxで主流のファイルシステム。 認識できる日付範囲が1901年12月14日から2038年1月18日。 |
ext4 | 16TB | 最大1EBまでのボリュームサイズと、最大16TBまでのファイルサイズをサポートする。 日付範囲が、1901年12月14日から2514年4月25日。タイムスタンプがナノ秒をサポート。 |
ReiserFS | 16TB | 小さなファイルの扱いに向いたジャーナリングファイルシステム。使っているのかな?SUSEで採用されていたとの事。 |
ファイルシステムをマウントするコマンド mount
デバイスとマウントポイントを指定してマウントする。マウント済みのファイルシステムを一覧表示する。
$ mount [オプション] デバイス [マウントポイント]
オプション | 意味 |
-a | /etc/fstabに記載がある全てのデバイスをマウントする(-tまたは-Oでファイルシステムの種類を制限できる) |
-O 種類 | -aオプション使用時に、ファイルシステムの種類を指定する(「,」区切りで複数指定可能、「~以外」と指定したい場合は先頭に「no」を付ける) |
-F | -aオプション使用時に、デバイスごとに別のプロセスでマウントを実行する(通常は/etc/fstabの記載順にマウントする。/usrの後に/usr/spoolをマウント処理したい場合には-Fオプションは使用できない) |
-T ファイル名 | /etc/fstabの代わりに使用するファイルを指定する |
-t 種類 | マウントするファイルシステムの種類を指定する(「,」区切りで複数指定可能、「~以外」としたい場合はnoを付ける、autoで自動判定 |
-L ラベル | 指定したラベルを持つパーティションをマウントする(/proc/partitionsが必要、カーネル2.1.116以降) |
-U 識別子 | 指定した識別子(UUID)のパーティションをマウントする(/proc/partitionsが必要、カーネル2.1.116以降) |
-o オプション | マウントオプション(「,」区切りで複数指定可能) |
-r | 読み込み専用でマウントする(「-o |
-w | 読み書き可能な状態でマウントする(デフォルト、「-o |
-B | サブツリーを別の場所に再マウントする(カーネル2.4.0以降)。つまり任意のディレクトリを別のディレクトリ下にマウントできる |
-M | サブツリーを別の場所に移動する(カーネル2.5.1以降) |
-n | /etc/mtab(マウント状況を記録するファイル)に書き込まない。/etcがROM領域にある場合に役立つ |
-i | ヘルパーコマンド(/sbin/mount.*)を使用しない |
-f | 実際にはマウントしない(実行内容を確認したいときに使用) |
-v | 動作時のメッセージを詳しく表示する |
-l | マウント済みのデバイスをラベル付きで一覧表示(引数を指定せず使用する) |
その他、主なmountコマンドのオプション
オプション | 意味 |
defaults | デフォルトのオプション(rw、suid、dev、exec、auto、nouser、asyncを使用する) |
rw | ファイルシステムを読み書き可能なモードでマウントする(デフォルト) |
ro | ファイルシステムを読み出し専用でマウントする |
suid | SUIDおよびSGIDビットを有効にする(デフォルト) |
nosuid | SUIDおよびSGIDビットを無効にする |
dev | ファイルシステム上のキャラクタスペシャルデバイスやブロックスペシャルデバイスを利用できるようにする(デフォルト) |
nodev | ファイルシステム上のキャラクタスペシャルデバイスやブロックスペシャルデバイスを利用できないようにする |
exec | バイナリの実行を許可する(デフォルト) |
noexec | バイナリの直接実行を禁止する |
auto | -aオプションを指定したときにマウントする(デフォルト) |
noauto | -aオプションでマウントせず、明示的に指定したときのみマウントする |
nouser | 一般ユーザーによるマウントを禁止する(デフォルト) |
user | 一般ユーザーでもマウントできるようにする(マウントを行ったユーザー名はmtabに書き込まれ、そのユーザーがアンマウントできるようになる。noexec、nosuid、nodevを指定したと見なされる |
users | 全てのユーザーがマウント、アンマウントできるようにする(noexec、nosuid、nodevを指定したと見なす |
owner | 一般ユーザーがマウントする際、マウントを実行するユーザーがデバイスの所有者と一致した場合にのみマウントを許可する(nosuidとnodevを指定した扱いとなる |
group | 一般ユーザーがマウントする際、マウントを実行するユーザーが属するグループのうちの1つがデバイスのグループと一致した場合にのみマウントを許可する(nosuidとnodevを指定したと見なす |
async | 全てのI/Oを非同期(asynchronous)に行う |
sync | I/Oを同期的(synchronous)に行う |
dirsync | 全てのディレクトリ更新を同期的に行う |
atime | アクセスごとにinodeのアクセス時間を更新する(デフォルト) |
noatime | inodeのアクセス時間を更新しない |
mand | ファイルシステム上での強制(mandatory)ロックを許可する |
nomand | ファイルシステム上での強制ロックを禁止する |
remount | マウント済みのファイルシステムを再マウントする(デバイスとマウントポイントは変更しない。マウントオプションを変更したい際に使用する) |
_netdev | ネットワークアクセスが必要なデバイス上にあるファイルシステム(システムがネットワーク利用可能な状態になるまでマウントさせないために使用) |
UUIDに対応するディスクパーティションを確認するコマンド blkid
ブロックデバイスの属性を表示する。UUIDやファイルシステムの種類をブロックデバイスごとに表示します。
$ blkid [オプション] [デバイス ……]
オプション | 意味 |
-c ファイル | blkidが参照するキャッシュファイルを指定する(/run/blkid/blkid.tab、または/etc/blkid.tabがデフォルトのキャッシュファイル)。キャッシュを無視して表示したい場合は/dev/nullを指定する |
-g | キャッシュから、既に存在しないデバイスなどの情報を削除する(garbage |
-o 書式 | 出力時の書式を指定する。指定可能なのはfull(全て表示、デフォルト)、value(値のみ)、device(デバイス名のみ)、list(固定幅のフォーマットで表示)、udev(環境変数ID_FS_UUIDなどを設定する際の書式で表示)など |
-s タグ | 指定したタグ(TYPE、UUID、LABEL)のみを表示する。NONEを指定すると何も表示せずキャッシュを更新する |
-d | 非表示文字をエンコードしない |
-t タグ名=値 | 指定した「タグ名=値」にマッチするデバイスだけを表示する。タグ名としてTYPE、LABEL、UUIDなどを指定可能 |
-l | -tオプション使用時、マッチするデバイスを1つ見つけたら終了する(UUIDで探す場合の効率がよくなる) |
-L ラベル | 指定したラベルに該当するデバイスの名前を表示 |
-U 識別子 | 指定した識別子(UUID)に該当するデバイスの名前を表示 |
-p デバイス名 | ローレベルの詳細な情報を表示 |
-i デバイス名 | LOGICAL_SECTOR_SIZEなどのI/O情報を表示 |
-n ファイルシステム | -pと同時に利用する。指定したファイルシステムのみを対象に情報を解析する(「-n |
-k | blkidコマンドが対応しているファイルシステムのみを一覧表示する(例えば、swap、ext3、iso9660など) |