Closed6
DDPSでISOイメージのURLを指定してOSを入れる方法
VPSサービスの DDPS は VirtFusion パネルを採用しおり、「カスタムCD/DVD-ROM」 にisoイメージへのURLを入力することでメディアブートができる。
ただこの「URLを指定」というのが曲者で
- https:// かつ .iso で終わっている必要がある (リダイレクトもNG)
- Cloudflareは使えない
- ストリーミングで読み込む、ある程度高速である必要がある
必要がある。また、落とし穴が多い。
今回はDDPSにOPNsense(ルーターOS)をインストールする過程で6時間ぐらい溶かしたためメモを残す。
結論
以下の二択になる。
- DDPS以外のVPSを借りてisoファイルをホスト
- ポート開放してisoファイルをホスト
注意点として
- サーバーがOFF状態でiso挿入を行うこと (忘れるとよくわからないエラーになるので注意)
以下の落とし穴によって上記二択に落ち着いた。
- https:// かつ .iso で終わっている必要がある (リダイレクトもNG)
- Google Driveやギガファイル便などのクッションページがあるサービスは使えないということになる。
- ここでほとんどのクラウドストレージサービスは使えないということになる。
- Dropboxはパネル上でのURLチェックは通るが、起動時にエラーになった。
- Cloudflareは使えなかった
- Cloudflare R2やCloudflare Tunnelは使用できなかった。
- おそらくDDPSのパネルがCloudflareを使っているため、相性が悪いのだと思われる。
- ストリーミングで読み込む、ある程度高速である必要がある
- isoはストリーミング方式でオンデマンドに読み込まれる。(おそらくqemuのURLマウント機能を使っていると思う)
- そのため、iso配布元のURLを直接指定したところ、起動に15分くらいかかり、その後isoへアクセスする操作やコマンドを打つたびに数分間フリーズするという散々な結果になった。
- 私の回線はVDSLで遅いため、ポート開放する選択肢も見送った。
- DDPSは使えなかった
- DDPSで他のサーバーを借りていたので、流用してホストしようとしたが、起動時にエラーとなった。
isoをVPSに置いてメディアブートしてみる
VPS上にnginxをインストールしてホストしたらメディアブートできた。
VPS選定
今回はLinodeの Nanode 1 GB プランを1時間だけ借りてホストすることにした。(2025/5/4時点で $0.0075/h、1時間約1円なのでお手軽)
isoデータを用意
配布サイトからisoをダウンロードして展開する。
# nginxのWWW用フォルダにisoをダウンロード
cd /var/lib/nginx/body/
wget https://mirror.ams1.nl.leaseweb.net/opnsense/releases/25.1/OPNsense-25.1-dvd-amd64.iso.bz2
# bzip2でbz2を解凍
apt update
apt install bzip2
bzip2 -d OPNsense-25.1-dvd-amd64.iso.bz2
CertbotでSSL取得
DDPSのメディアブート欄には「https」しか使えないのでSSL証明書を取得する必要がある。
certbot certonly
# How would you like to authenticate with the ACME CA?
# 1を選択 (Runs an HTTP server locally)
Nginxインストール&起動
apt install nginx
# nginx設定を追加
nano /etc/nginx/conf.d/my-data.example.com.conf
# 設定をチェックして適用
nginx -t
nginx -s reload
/etc/nginx/conf.d/my-data.example.com.conf
server {
listen 443 ssl;
server_name my-data.example.com;
# SSL 証明書・秘密鍵のパス
ssl_certificate /etc/letsencrypt/live/my-data.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/my-data.example.com/privkey.pem;
# ドキュメントルートを設定
root /var/lib/nginx/body;
}
DDPSでURLを指定&起動
できた!
トラブルシューティング
- 実際はサーバーをOFFにしてからisoを挿入することで解決する
(一見ストリーミング設定ミスったように見えたが、全然関係なかった)
- 以下はエラーになるようだ。
- ❌️443以外のポートを使う
- ❌️短縮URLの使用
- ❌️
?.iso
みたいなクエリ指定
解約後にLinodeから通信量超過のメールが来た。
途中解約すると通信が従量課金になるっぽい。
38GBも通信したらしく、Linodeの追加転送料金は0.005USD/GBなので、34GB×0.005USD=0.17USD(約25円)くらい請求されそう。
(ストリーミング通信って、こんなに通信するのか、、、)
後日メールを確認したところ、結局30円程度請求された模様。
このスクラップは3ヶ月前にクローズされました