目次
こんにちは。
自宅NASサーバを構築したいと思いました。 色々と調べながらやってみたのですが、なんだかうまく構築できなかったので、順序立てて一つずつ対応していくためにやり方をまとめました。
せっかくなので記事としてまとめ、誰かのお役に立てれば良いかと思います。
要件
今回NASサーバを構築する際において、以下の要件を満たすことにしました。
実践
というわけで、インストールから始めます。
必要なもの
その前に、NASサーバを構築するために必要なものを記載します。
- PC
- ファイルサーバにするためのパソコン。
- 有線のキーボードとマウス
- HDD × 2
- データを保存するためのHDD。RAID1を構築するため、2つ用意します。
- USB 16GB以上
- Ubuntuをインストールするために必要です。後述しますが、ISOファイルを書き込む都合上、16GB以上の容量が必要になります。
Ubuntuのインストールのための準備
UbuntuをOSとして用いるため、まずはUbuntuをダウンロードします。
Ubuntuを入手する | Ubuntu | UbuntuUbuntuを入手する | Ubuntu | Ubuntu
Ubuntuは、その用途に合わせてさまざまな種類をダウンロードすることができます。 今回の場合、用途がファイルサーバなので、Ubuntu Serverを選択しても良いのですが、GUIを備えたUbuntu Desktopを選択します。
Ubuntu Desktopをダウンロードすると、ISOファイルが取得できます。
ISOファイルとは、1つの光学ディスクに保存されるデータを一つにまとめたデータ、のことです。
つまり、このISOファイルがUbuntuOSを使うためのひとまとめのデータということです。
次に、このUbuntuOSをPCにインストールします。
しかし、このISOファイルをどうやってPCにインストールすれば良いのでしょうか。
ここでは、USB Boot機能によるインストール、つまり、USBからOSを起動してインストールを行なってみます。
USBからBoot起動させるには、まずUSBにISOファイルを書き込む必要があります。
この書き込み用ソフトウェアにRufusがあります。
なので、Rufusをダウンロードします。
Rufusを起動する前に、USBをフォーマットしておきましょう。
フォーマットしたら、USBをPCに挿したまま、Rufusを起動します。
PCにUSBだけを挿していれば、「デバイス」項目にそのUSBが選択されているはずです。
ブートの種類の横にある「選択」をクリックし、先ほどダウンロードしたISOファイルと選択します。その他の設定はそのままとし、「スタート」をクリックしましょう。
「スタート」をクリックすると、ハイブリッドISO形式のイメージを検出したことによる書き込む形式の確認ダイアログが表示されます。
ここでは、推奨されている「ISOイメージモードで書き込む」を選択し、「OK」をクリックします。
その後、データ消去の確認ダイアログも「OK」とし、書き込みを開始します。
この書き込みは10分くらいかかるので、気長に待ちましょう。
書き込みが完了したら、NASにしたいPCに差し替えましょう。
UbuntuOSのインストール
さて、Ubuntu OSのインストールの準備が完了しましたので、次はUbuntuOSのインストールを行います。
NASにしたいPCはシャットダウンしておきます。
そして、RufusによってUbuntuが書き込まれたUSBをPCに挿しておきます。
次に、そのPCの電源を入れるのですが、USB Boot起動をさせるために、PCをBIOS起動させます。
BIOS起動させるための方法は、PCメーカによってさまざまなため、以下のサイトを参考に起動方法を調べましょう。
私の場合はASRockのマザーボードを使っているので、起動した時のメーカーロゴ画面でF11キーを押下してBIOS画面を起動しました。
BIOSに入ると、bootデバイスを選択する画面になるので、USBを選択しましょう。
すると、Ubuntuのインストール選択画面に入るため、「Try or Install Ubunt」を選択して、Ubuntuをインストールします。
そうすると、UbuntuOSのGUI画面が表示されます。
その画面の右下にインストールショートカットがあるので、それをダブルクリックしてPCへのインストールを開始します。
インストールでは、ウィザードに沿って進めてください。ただし、インストールするハードディスクは、RAID1用のHDDにはインストールしないように注意しましょう。
インストールが完了したら再起動をして、そのときにUSBを抜いておきましょう。
初期設定
SSH
NASを構築する上で、さまざまな設定を行なっていきます。
が、このままNASとして活用していくPCで操作するのは、開発者体験があまり良くありません(NAS PCがディスプレイと場所を占有してしまうのは他の作業ができなくなってしまうので)。
なので、私の場合は別のMacBookから無線アクセス、つまりSSH接続して設定していきます。
再起動したNAS PCでログインし、インストール時にWi-fiを設定していない場合はWi-fiを設定します。この後、パッケージの更新を行うときに、ネットワークが繋がっていないと更新ができないので気をつけてください。
次に、画面左下のアプリケーションメニューから「Terminals」を起動します。 そして以下を実行して、パッケージの更新を行います。
sudo apt update sudo apt full-upgrade -y
さらに、SSH接続のためのパッケージをインストールします。
sudo apt install openssh-server
この後、NAS PCを再起動します。
%% 再起動コマンド %% > sudo reboot
再起動が完了したらターミナルを開いて、以下のコマンドを実行してSSHの状態を確認します。
admin@file-system:~$ sudo systemctl status ssh [sudo] password for admin: ● ssh.service - OpenBSD Secure Shell server Loaded: loaded (/usr/lib/systemd/system/ssh.service; enabled; preset: enabled) Active: active (running) since Sat 2025-06-21 21:10:18 JST; 1h 40min ago TriggeredBy: ● ssh.socket Docs: man:sshd(8) man:sshd_config(5) Main PID: 1180 (sshd) Tasks: 1 (limit: 6931) Memory: 4.4M (peak: 20.6M) CPU: 261ms CGroup: /system.slice/ssh.service └─1180 "sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups"
上記のようになっていれば(Active: active (running)
)、正常に起動しています。
また以下のコマンドを実行して、NAS PCのIPアドレスなども調べておきましょう。
admin@file-system:~$ ifconfig ... wlp7s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1440 inet 192.168.0.215 netmask 255.255.255.0 broadcast 192.168.0.255 inet6 fe80::4f83:1976:f576:fa2c prefixlen 64 scopeid 0x20<link> inet6 2001:268:738d:eab6:a7be:cc83:caf6:e76c prefixlen 64 scopeid 0x0<global> inet6 2001:268:d2df:5a2f:49a9:cc42:c170:db2e prefixlen 64 scopeid 0x0<global> inet6 2001:268:d2df:5a2f:86:535e:854a:7fb8 prefixlen 64 scopeid 0x0<global> ether 58:a0:23:db:80:ad txqueuelen 1000 (Ethernet) RX packets 62371 bytes 9698686 (9.6 MB) RX errors 0 dropped 1 overruns 0 frame 0 TX packets 27767 bytes 3653553 (3.6 MB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
この192.168.0.215にアクセスすることになります。
このIPアドレスは、再起動するたびに変更されてしまいます。 そのため、Ubuntuのネットワーク設定でIPアドレスを固定するように設定しておきましょう。
以上、NAS PCでの操作はここまでになります。これ以降はMacbbook PCでの操作になります。
NAS PCへSSH接続できるか確かめてみましょう。
Macbook PCで、ターミナルを開きます。また、Wi-fiはNAS PCと同じネットワークを使用しておきましょう。
以下のコマンドを実行すると、今までの設定がうまくいっていればログインできるかと思います。
❯ ssh admin@192.168.0.215 admin@192.168.0.215's password: Welcome to Ubuntu 24.04.2 LTS (GNU/Linux 6.11.0-26-generic x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/pro Expanded Security Maintenance for Applications is not enabled. 0のアップデートはすぐに適用されます。 Enable ESM Apps to receive additional future security updates. See https://ubuntu.com/esm or run: sudo pro status Last login: Sun Jun 22 21:06:47 2025 from 192.168.0.220
これで、SSHのインストールは完了です。
おまけ
SSHを使用してログインするとき、ユーザー名やIPアドレス、パスワードをいちいち入力するのは面倒です。
なので、より安全なログイン手法であるキーペアを使ったログインとショートカットコマンドの作成を行います。
まず、キーペアを作成します。 以下を実行するとキーペアが生成されます。
ssh-keygen
生成されたキーペアは、サーバー側に登録する必要があるので、さらに以下を実行します。
ssh-copy-id {ユーザー名}@{IPアドレス}
ここまで行うと、以下を実行することでキーペアを使ったログインが可能になります。
ssh -i {登録したキーペアのパス} '{ユーザー名}@{IPアドレス}'
最後に、~/.ssh/config
に以下の設定値を記載することで、ショートカットコマンドを登録することができます。
Host {コマンドキー} HostName {ホスト名} User {ユーザー名} Port (ポート番号) IdentityFile {鍵へのPATH(例えば~/.ssh/hoge)}
さらなるおまけ
SSHにログインすると、常に以下のテキストが表示されます。
Welcome to Ubuntu 24.04.2 LTS (GNU/Linux 6.11.0-26-generic x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/pro Expanded Security Maintenance for Applications is not enabled. 0のアップデートはすぐに適用されます。 Enable ESM Apps to receive additional future security updates. See https://ubuntu.com/esm or run: sudo pro status
このテキストは、/etc/update-motd.d/
内にbashファイルを含めることで、好きなテキストを表示ことができます。
例えば、/etc/update-motd.d/01-welcome
を作成し、以下を作成してみます。
#!/bin/sh printf "\n" figlet "WELCOME TO FILE-SERVER" | /usr/games/lolcat -f
また、NASサーバで以下をインストールしておきます。
sudo apt install figlet lolcat -y
このように設定すると、以下のように表示することができます(FILE-SERVERのところは色がついています)。
Welcome to Ubuntu 24.04.2 LTS (GNU/Linux 6.11.0-26-generic x86_64) __ _______ _ ____ ___ __ __ _____ \ \ / / ____| | / ___/ _ \| \/ | ____| \ \ /\ / /| _| | | | | | | | | |\/| | _| \ V V / | |___| |__| |__| |_| | | | | |___ _ \_/\_/ |_____|_____\____\___/|_| |_|_____( ) |/ _____ ___ _ _____ ____ _____ ______ _______ ____ | ___|_ _| | | ____| / ___|| ____| _ \ \ / / ____| _ \ | |_ | || | | _| ____\___ \| _| | |_) \ \ / /| _| | |_) | | _| | || |___| |__|_____|__) | |___| _ < \ V / | |___| _ < |_| |___|_____|_____| |____/|_____|_| \_\ \_/ |_____|_| \_\ * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/pro Expanded Security Maintenance for Applications is not enabled. 0のアップデートはすぐに適用されます。 Enable ESM Apps to receive additional future security updates. See https://ubuntu.com/esm or run: sudo pro status
RAID1設定
SSHによる設定ができるようになったところで、RAID1構成を構築していきます。
以下は、NASサーバーにログインして行なってください。
まず、対象となるディスクを確認するために、以下のコマンドを実行してください。
sudo fdisk -l
すると、以下のような出力が見られます(以下は、すでにRAID1を構築してしまった後の出力のため、少し違うところがあるかもです)。
Disk /dev/sdb: 7.28 TiB, 8001563222016 bytes, 15628053168 sectors Disk model: ST8000DM004-2U91 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: gpt Disk identifier: 4BBFCFF6-2C8B-4FC1-B8F3-7B36208CEBA6 Disk /dev/sdc: 7.28 TiB, 8001563222016 bytes, 15628053168 sectors Disk model: ST8000DM004-2U91 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: gpt Disk identifier: 75BBFE6C-ED6D-4FB4-811E-DFAA2790B2D3
自分がどのHDDを用意したのか把握しておくと、判別しやすいですね。
上記の場合では、/dev/sdb
, /dev/sdc
が対象のディスクになります。
また、構築の前に、対象となるディスクにデータが含まれていないか確認しておきましょう。RAIDを作成するとき、初期化が行われるので、重要なデータはすべて削除されてしまいます。
まず、partedコマンドを使用して、gptで全容量を指定したパーティションを作成します。gptなどについては、こちらを参照してください。
sudo parted --script /dev/sdb "mklabel gpt" sudo parted --script /dev/sdc "mklabel gpt" sudo parted --script /dev/sdb "mkpart primary 0% 100%" sudo parted --script /dev/sdc "mkpart primary 0% 100%"
続いて、パーティションにraidフラグを付与します。これを付与しないとカーネルにRAIDアレイと認識されないようです。
sudo parted --script /dev/sdb "set 1 raid on" sudo parted --script /dev/sdc "set 1 raid on"
先ほどのfdisk
を実行するとフラグが立っているのが確認できます。
sudo fdisk -l Disk /dev/sdb: 7.28 TiB, 8001563222016 bytes, 15628053168 sectors Disk model: ST8000DM004-2U91 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: gpt Disk identifier: 483BCA84-082D-40A9-9014-9D31985E3C7A Device Start End Sectors Size Type /dev/sdb1 2048 15628052479 15628050432 7.3T Linux RAID Disk /dev/sdc: 7.28 TiB, 8001563222016 bytes, 15628053168 sectors Disk model: ST8000DM004-2U91 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: gpt Disk identifier: 6A7AB752-5E96-4954-9E61-A751D03BA223 Device Start End Sectors Size Type /dev/sdc1 2048 15628052479 15628050432 7.3T Linux RAID
次に、RAIDを構築するために、mdadmパッケージをインストールします。
sudo apt install mdadm
インストールが完了したら、以下のコマンドを実行し、RAID1アレイを作成します。
sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1
このコマンドによって、/dev/sdb1
, /dev/sdc1
を使用して新たに/dev/md0
というRAIDデバイスを作成しています。
作成には、HDDの容量によって非常に長い時間がかかる場合があります。例えば、私の場合は8TBで12時間ほどはかかっています。
進捗を確認するには、以下のコマンドで確認できます。
cat /proc/mdstat
さて、RAID1の作成が成功したら、今度はこのRAID1構成を永続させる設定を行います。
まず、現在のRAID構成をmdadm.confに保存します。
sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
次に、RAIDアレイにファイルシステムを作成します。以下の場合は、ext4として作成しています。
sudo mkfs -t ext4 /dev/md0
さらに、マウントポイントを作成します。マウントポイントとするディレクトリ名は自分の好きな名前にしてください。
sudo mkdir -p /mnt/file-server
そして、マウントしてみます。
sudo mount /dev/md0 /mnt/file-server
動作確認がうまくったら、自動マウントのために/etc/fstabにUUIDで追記を行います。
sudo blkid /dev/md0
出力されたUUIDをもとに、以下のように/etc/fstabに以下を記述します。
/dev/disk/by-uuid/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /mnt/file-server ext4 defaults 0 0
最後に、
sudo update-initramfs -u
を実行して、ブート時にinitramfs(初期 RAM ディスク)から読み込ませるようにします。
これで再起動した後でも、RAID1が自動でマウントされるようになります。
WindowsPCの共有設定
このエントリもそろそろ終わりに近づいてきました。 最後は、WindowsPCからの共有を可能にしていきます。
今ままで、データを保管する場所を作成しましたので、ここからはファイルサーバとして使うための設定を行なっていきます。
ファイルサーバを構築するためには、sambaというパッケージを使用します。
以下のコマンドを実行して、sambaをインストールします。
sudo apt install samba -y
これによってsambaがインストールされますので、今度は設定を記載していきます。
sambaの設定ファイルは、/etc/samba/smb.conf
に記載します。なので、以下を実行して設定を記載してください。
sudo nano /etc/samba/smb.conf [file-server] comment = file-server path = /mnt/file-server browseable = yes writeable = yes read only = no guest ok = no create mode = 777 directory mode = 777
そして、Sambaでファイル共有を行う場合は、Sambaユーザーを作成する必要があります。そのため、Linux上に通常のユーザーを作成し、そのあとでSambaのパスワードを設定します。
sudo adduser hoge sudo smbpasswd -a hoge
最後に以下のコマンドを実行してsambaを再起動して設定を反映させます。
sudo systemctl restart smbd
これによって、上記で固定したIPアドレスにWindowsからアクセスし、先ほどのユーザー名tとパスワードを入力すれば、Ubuntuのfile-serverへアクセスできます。
終わり
これで自作NASサーバの構築は終わりになります。
ネットで最初に出てきた情報だけだと、RAIDの永続化やWindowsの共有設定など上手くできませんでした。
上記にまとめた内容で、自分はうまく構築することができたので、皆様の役に立てれば幸いです。
また、最後にこの構築方法に至るまでに活用させていただいた参考文献を記載しておきます。上記の方法でうまくいかない場合は、参考にしてみてください。
それでは、最後までお読みいただきありがとうございました。