diff --git a/README.ja-JP.md b/README.ja-JP.md
new file mode 100644
index 0000000..8bf8943
--- /dev/null
+++ b/README.ja-JP.md
@@ -0,0 +1,354 @@
+
+
+# Debian Network Reinstall Script
+
+## このスクリプトについて
+
+これは、あらゆるVPSや物理マシンを、ネットワークブート経由で最小構成のDebianに再インストールするためのスクリプトです。GRUBにDebianインストーラーを組み込み、インストールプロセスを自動的に設定することで動作します。
+
+**主な用途:**
+- Oracle CloudのUbuntuイメージをDebianに変換
+- クラウドプロバイダーの監視エージェントの削除
+- クリーンで最小限のDebian環境の構築
+- Preseedやcloud-initを使用したインストールの自動化
+- 破損したシステムのレスキュー
+
+## クイックスタート
+
+```bash
+# スクリプトをダウンロード
+curl -fLO [https://raw.githubusercontent.com/bohanyang/debi/master/debi.sh](https://raw.githubusercontent.com/bohanyang/debi/master/debi.sh)
+chmod +x debi.sh
+
+# 基本的なインストール(sudo権限を持つ 'debian' ユーザーを作成)
+sudo ./debi.sh
+
+# もしくは、rootユーザーとしてインストール
+sudo ./debi.sh --user root
+
+# 準備ができたら再起動
+sudo reboot
+````
+
+**デフォルト設定:** Debian 12 (bookworm)、DHCPによるネットワーク設定、sudo権限を持つ`debian`ユーザーが作成され、パスワードの入力を求められます。
+
+## プラットフォームサポート
+
+| プラットフォーム | ステータス | 備考 |
+|---|---|---|
+| ✅ **KVM/物理マシン** | フルサポート | 全ての機能が動作します |
+| ✅ **ほとんどのVPS** | フルサポート | DigitalOcean, Vultr, Linodeなど |
+| ⚠️ **Google Cloud** | 手動でのネットワーク設定が必要 | DHCPが機能しないため`--ip`, `--gateway`が必須 |
+| ⚠️ **AWS EC2** | BIOSのみ | UEFIブートはまだサポートされていません |
+| ❌ **コンテナ** | サポート対象外 | GRUBブートローダーが必要です |
+
+**要件:**
+
+ - KVMまたは物理マシン(コンテナは不可)
+ - GRUB 2 ブートローダー
+ - rootアクセス権限
+
+## 地域別プリセット
+
+| プリセット | ミラー | DNS | NTP | 最適な環境 |
+|---|---|---|---|---|
+| *Default* | deb.debian.org | Google DNS | time.google.com | グローバル |
+| `--cloudflare` | deb.debian.org | Cloudflare | time.cloudflare.com | グローバル (プライバシー重視) |
+| `--aws` | cdn-aws.deb.debian.org | Google DNS | time.aws.com | AWSインスタンス |
+| `--aliyun` | mirrors.aliyun.com | AliDNS | time.amazonaws.cn | 中国 |
+| `--ustc` | mirrors.ustc.edu.cn | DNSPod | time.amazonaws.cn | 中国 |
+| `--tuna` | mirrors.tuna.tsinghua.edu.cn | DNSPod | time.amazonaws.cn | 中国 |
+
+## 全オプションリファレンス
+
+### システムとユーザー設定
+
+| オプション | デフォルト値 | 説明 |
+|---|---|---|
+| `--version 12` | `12` | Debianのバージョン: `10`, `11`, `12`, `13` |
+| `--suite bookworm` | `bookworm` | Debianのスイート: `stable`, `testing`, `sid` など |
+| `--user debian` | `debian` | ユーザー名 (`root`を指定するとrootユーザーのみ) |
+| `--password PASSWORD` | *プロンプト* | ユーザーのパスワード(指定しない場合はプロンプト表示) |
+| `--authorized-keys-url URL` | *パスワード認証* | URLからSSH公開鍵を設定 (例: `https://github.com/user.keys`) |
+| `--no-account-setup` | *ユーザー作成* | ユーザー作成をスキップ(コンソールでの手動設定が必要) |
+| `--sudo-with-password` | *パスワード不要* | sudoコマンド実行時にパスワードを要求する |
+| `--timezone UTC` | `UTC` | システムのタイムゾーン (例: `Asia/Tokyo`) |
+| `--hostname NAME` | *現在の値* | システムのホスト名 |
+
+### ネットワーク設定
+
+| オプション | デフォルト値 | 説明 |
+|---|---|---|
+| `--interface auto` | `auto` | ネットワークインターフェース (例: `eth0`, `eth1`) |
+| `--ip ADDRESS` | *DHCP* | 静的IP: `10.0.0.100`, `1.2.3.4/24`, `2001:db8::1/64` |
+| `--static-ipv4` | *DHCP* | 現在のIPv4設定を自動的に使用 |
+| `--netmask MASK` | *auto* | ネットマスク: `255.255.255.0`, `ffff:ffff:ffff:ffff::` |
+| `--gateway ADDRESS` | *auto* | ゲートウェイIP (`none`でゲートウェイなし) |
+| `--dns '8.8.8.8 8.8.4.4'` | `1.1.1.1 1.0.0.1` | IPv4用のDNSサーバー |
+| `--dns6 '2001:4860:4860::8888'` | `2606:4700:4700::1111` | IPv6用のDNSサーバー |
+| `--ethx` | *予測可能な名前* | `enp0s3`形式の代わりに`eth0`/`eth1`を使用 |
+| `--ntp time.google.com` | `time.google.com` | NTPサーバー |
+
+### ネットワークコンソール(リモートインストール)
+
+| オプション | デフォルト値 | 説明 |
+|---|---|---|
+| `--network-console` | *無効* | インストール中にSSHアクセスを有効化 |
+
+**ネットワークコンソールの使い方:**
+
+1. `--network-console` を付けて有効化し、再起動します
+2. Debianインストーラーがコンポーネントをロードするまで2〜3分待ちます
+3. サーバーにSSH接続します: `ssh installer@YOUR_IP`
+4. 複数のターミナルを利用できます:
+ - **Alt+F1**: メインのインストーラー画面
+ - **Alt+F2**: シェルアクセス
+ - **Alt+F3**: 追加のシェル
+ - **Alt+F4**: システムログ(自動インストールの進捗を監視)
+ - Alt+Left/Alt+Rightで画面を切り替え
+
+**⚠️ 注意事項**
+
+`--authorized-keys-url` を使用した場合、SSHのパスワード認証は無効になります(SSHキーが必須)。**ただし、ユーザーパスワードの設定が必要です(VNCコンソールやsudoでのアクセスのため)。**
+
+### ストレージとパーティショニング
+
+| オプション | デフォルト値 | 説明 |
+|---|---|---|
+| `--disk /dev/sda` | *自動検出* | 対象ディスク(複数ディスクがある場合は**必須**) |
+| `--no-disk-partitioning` | *自動パーティション* | コンソールで手動パーティショニングを行う |
+| `--filesystem ext4` | `ext4` | ルートファイルシステムのタイプ |
+| `--force-gpt` | *有効* | GPTパーティションテーブルを作成 |
+| `--no-force-gpt` | *GPTを使用* | 代わりにMBRパーティションテーブルを使用 |
+| `--bios` | *自動検出* | BIOSブートを強制(BIOSブートパーティションを作成) |
+| `--efi` | *自動検出* | EFIブートを強制(EFIシステムパーティションを作成) |
+| `--esp 106` | `106` | EFIシステムパーティションのサイズ (106=100MB, 538=512MB, 1075=1GB) |
+
+### ミラーとリポジトリの設定
+
+| オプション | デフォルト値 | 説明 |
+|---|---|---|
+| `--mirror-protocol https` | `https` | ミラーのプロトコル: `http`, `https`, `ftp` |
+| `--https` | *有効* | `--mirror-protocol https` のエイリアス |
+| `--mirror-host deb.debian.org` | `deb.debian.org` | ミラーのホスト名 |
+| `--mirror-directory /debian` | `/debian` | ミラーのディレクトリパス |
+| `--mirror-proxy URL` | *なし* | ダウンロードとAPT用のHTTPプロキシ |
+| `--reuse-proxy` | *なし* | 既存の`http_proxy`環境変数を使用 |
+| `--security-repository URL` | *auto* | セキュリティアップデート用リポジトリ (`mirror`でメインミラーを使用) |
+
+### APTリポジトリコンポーネント
+
+| オプション | デフォルト値 | 説明 |
+|---|---|---|
+| `--apt-non-free-firmware` | *有効* | non-free-firmwareを含める (Debian 12以降) |
+| `--apt-non-free` | *無効* | non-freeリポジトリを有効化 |
+| `--apt-contrib` | *無効* | contribリポジトリを有効化 |
+| `--apt-src` | *有効* | ソースリポジトリを有効化 |
+| `--apt-backports` | *有効* | backportsリポジトリを有効化 |
+| `--no-apt-non-free-firmware` | *デフォルトを使用* | non-free-firmwareを無効化 |
+| `--no-apt-non-free` | *デフォルトを使用* | non-freeを無効化 |
+| `--no-apt-contrib` | *デフォルトを使用* | contribを無効化 |
+| `--no-apt-src` | *デフォルトを使用* | ソースリポジトリを無効化 |
+| `--no-apt-backports` | *デフォルトを使用* | backportsを無効化 |
+
+### パッケージインストール
+
+| オプション | デフォルト値 | 説明 |
+|---|---|---|
+| `--install 'pkg1 pkg2'` | *最小構成* | 追加パッケージ(スペース区切り、引用符で囲む) |
+| `--install-recommends` | *有効* | 推奨パッケージをインストール |
+| `--no-install-recommends` | *推奨をインストール* | 推奨パッケージをスキップ |
+| `--upgrade safe-upgrade` | `safe-upgrade` | パッケージのアップグレードモード |
+| `--safe-upgrade` | *デフォルト* | インストール中に安全なパッケージアップグレードを実行 |
+| `--full-upgrade` | *safe upgrade* | フルシステムアップグレード (`dist-upgrade`) |
+| `--no-upgrade` | *safe upgrade* | パッケージのアップグレードを完全にスキップ |
+
+### カーネルオプション
+
+| オプション | デフォルト値 | 説明 |
+|---|---|---|
+| `--kernel PACKAGE` | `linux-image-ARCH` | カーネルパッケージ名 |
+| `--cloud-kernel` | *標準* | クラウド最適化カーネルを使用 |
+| `--bpo-kernel` | *stable* | backportsから新しいカーネルを使用 |
+| `--firmware` | *自動検出* | ハードウェア用のnon-freeファームウェアを含める |
+
+### 詳細オプション
+
+| オプション | デフォルト値 | 説明 |
+|---|---|---|
+| `--ssh-port 2222` | `22` | カスタムSSHポート |
+| `--bbr` | *無効* | TCP BBR輻輳制御アルゴリズムを有効化 |
+| `--architecture amd64` | *自動検出* | 対象アーキテクチャ: `amd64`, `arm64`, `i386` など |
+| `--force-lowmem 1` | *auto* | 低メモリモードを強制: `0`, `1`, `2` (512MB未満のRAM用) |
+| `--no-force-efi-extra-removable` | *有効* | EFIの追加リムーバブルメディアパスを無効化 |
+| `--grub-timeout 5` | `5` | GRUBメニューのタイムアウト秒数 |
+
+### Debianインストーラーオプション
+
+| オプション | デフォルト値 | 説明 |
+|---|---|---|
+| `--release-d-i` | *auto* | リリース版のdebian-installerを使用 |
+| `--daily-d-i` | *auto* | デイリービルド版のdebian-installerを使用 |
+
+### Cloud-Init連携
+
+| オプション | デフォルト値 | 説明 |
+|---|---|---|
+| `--cidata /path/to/dir` | *なし* | カスタムcloud-initデータディレクトリ |
+
+**Cloud-Initの使い方:**
+
+```bash
+# cloud-init設定を作成
+mkdir my-cloud-config
+echo "instance-id: my-server" > my-cloud-config/meta-data
+cat > my-cloud-config/user-data << 'EOF'
+#cloud-config
+hostname: my-server
+packages:
+ - htop
+ - git
+EOF
+
+# インストール時に使用
+sudo ./debi.sh --cidata my-cloud-config
+```
+
+### 開発とテスト
+
+| オプション | デフォルト値 | 説明 |
+|---|---|---|
+| `--dry-run` | *実行* | インストールは行わず、設定ファイルのみ生成 |
+| `--hold` | *再起動* | インストール後に再起動しない |
+| `--power-off` | *再起動* | 再起動の代わりに電源をオフにする |
+
+## 使用例
+
+### Oracle Cloud (Ubuntu → Debian)
+
+```bash
+sudo ./debi.sh --cloudflare --user debian
+```
+
+### Google Cloud Platform
+
+```bash
+# GCPでは手動でのネットワーク設定が必要(お使いのVPC設定に置き換えてください)
+sudo ./debi.sh --ip 10.128.0.100/24 --gateway 10.128.0.1
+```
+
+### 最小構成でのインストール
+
+```bash
+sudo ./debi.sh --no-install-recommends --install 'curl git vim' --no-upgrade
+```
+
+### 中国向けデプロイ
+
+```bash
+sudo ./debi.sh --ustc --timezone Asia/Shanghai --dns '119.29.29.29'
+```
+
+### ネットワークコンソールでのインストール
+
+```bash
+# インストール中にリモートアクセスを有効化(ネットワーク接続はSSHキー、VNC/sudoはパスワードが引き続き必要)
+sudo ./debi.sh --network-console --authorized-keys-url [https://github.com/yourusername.keys](https://github.com/yourusername.keys)
+# 再起動後、SSH接続: ssh installer@YOUR_IP
+```
+
+### 静的IPとCloud-Initを使用
+
+```bash
+sudo ./debi.sh --ip 192.168.1.100/24 --gateway 192.168.1.1 --cidata ./cloud-config/
+```
+
+### 高度なカスタム設定
+
+```bash
+sudo ./debi.sh \
+ --version 12 \
+ --user admin \
+ --timezone Europe/London \
+ --disk /dev/nvme0n1 \
+ --filesystem btrfs \
+ --cloud-kernel \
+ --bbr \
+ --ssh-port 2222 \
+ --install 'htop iotop ncdu'
+```
+
+## トラブルシューティング
+
+### 全ての変更を元に戻す
+
+```bash
+# 全ての変更を削除し、元のGRUB設定を復元
+sudo rm -rf /etc/default/grub.d/zz-debi.cfg /boot/debian-*
+sudo update-grub || sudo grub2-mkconfig -o /boot/grub2/grub.cfg
+```
+
+### よくある問題
+
+**複数のディスクが検出された場合:**
+
+```bash
+# 利用可能なディスクをリスト表示
+lsblk
+# 対象ディスクを指定
+sudo ./debi.sh --disk /dev/sda
+```
+
+**低メモリのVPS (\<512MB) の場合:**
+
+```bash
+sudo ./debi.sh --force-lowmem 1
+```
+
+**ネットワーク設定に失敗する場合:**
+
+```bash
+# 現在のネットワーク設定を使用
+sudo ./debi.sh --static-ipv4
+
+# または手動で設定
+sudo ./debi.sh --ip YOUR_IP/CIDR --gateway YOUR_GATEWAY
+```
+
+**ネットワークカードにファームウェアが必要な場合:**
+
+```bash
+sudo ./debi.sh --firmware
+```
+
+**インストールのデバッグ:**
+
+```bash
+# preseedファイルのみを生成
+sudo ./debi.sh --dry-run
+
+# リモートアクセス用にネットワークコンソールを有効化(リモートはSSHキー、VNC/sudoはパスワードが必要)
+sudo ./debi.sh --network-console --authorized-keys-url YOUR_KEYS_URL
+```
+
+## 動作の仕組み
+
+1. **Debianインストーラーをダウンロード**し、`/boot/debian-$VERSION/`に配置します
+2. 指定された設定で**preseedファイルを生成**します
+3. **GRUBの設定を変更**し、インストーラーのメニューエントリを追加します
+4. インストーラーのinitramfsに**設定を注入**します
+5. **GRUBを更新**し、新しいブートオプションを反映させます
+
+**システムに加えられる変更:**
+
+ - `/boot/debian-*/` にファイルが追加されます
+ - `/etc/default/grub.d/zz-debi.cfg` にGRUB設定が追加されます
+ - GRUBメニューが更新されます
+
+**これらの変更は安全であり、再起動前であれば上記の「元に戻す」コマンドで取り消すことが可能です。**
+
+-----
+
+*Created by [@bohanyang](https://github.com/bohanyang) • [Issues](https://github.com/bohanyang/debi/issues) • [GitHub](https://github.com/bohanyang/debi)*
+
+
diff --git a/README.md b/README.md
index 27fd4d9..1bfcef3 100644
--- a/README.md
+++ b/README.md
@@ -1,154 +1,323 @@
# Debian Network Reinstall Script
-[中文说明 ↓](#中文说明)
+- [中文版在这里](./README.zh-CN.md)
+- [日本語はこちら](./README.ja-JP.md)
-## Introduction
+## What is this?
-This script is written to reinstall VPS/VMs to minimal Debian.
+A script that reinstalls any VPS or physical machine to minimal Debian via network boot. Works by injecting the Debian installer into GRUB and automatically configuring the installation process.
-## Platforms
+**Perfect for:**
+- Converting Oracle Cloud's Ubuntu images to Debian
+- Removing cloud provider surveillance agents
+- Creating minimal, clean Debian environments
+- Automating installations with preseed/cloud-init
+- Rescuing broken systems
-- ✔ KVM or physical machines ❌ Containers
-- ✔ Debian or Ubuntu or Red Hat Linux as original OS with GRUB 2 bootloader
-- ✔ MBR or GPT partition table
-- ✔ Multiple disks or LVM
-- ✔ IPv4 or IPv6
-- ✔ Legacy BIOS or UEFI boot
-- ✔ Most VPS or cloud providers
-- ⚠️ Google Compute Engine - **MUST** manually specify IP/CIDR and gateway of VPC
-- ⚠️ AWS EC2 or Lightsail - Does **NOT** work with UEFI boot
+## Quick Start
-## How It Works
+```bash
+# Download the script
+curl -fLO https://raw.githubusercontent.com/bohanyang/debi/master/debi.sh
+chmod +x debi.sh
+
+# Basic installation (creates user 'debian' with sudo access)
+sudo ./debi.sh
+
+# Or install as root user instead
+sudo ./debi.sh --user root
+
+# Reboot when ready
+sudo reboot
+```
+
+**Default settings:** Debian 12 (bookworm), DHCP networking, user `debian` with sudo access, you'll be prompted for password.
+
+## Platform Support
+
+| Platform | Status | Notes |
+|----------|---------|-------|
+| ✅ **KVM/Physical** | Full support | All features work |
+| ✅ **Most VPS** | Full support | DigitalOcean, Vultr, Linode, etc. |
+| ⚠️ **Google Cloud** | Requires manual network | Must use `--ip`, `--gateway` (DHCP broken) |
+| ⚠️ **AWS EC2** | BIOS only | UEFI boot not yet supported |
+| ❌ **Containers** | Not supported | Requires GRUB bootloader |
+
+**Requirements:**
+- KVM or physical machine (not containers)
+- GRUB 2 bootloader
+- Root access
+
+## Regional Presets
+
+| Preset | Mirror | DNS | NTP | Best for |
+|--------|---------|-----|-----|----------|
+| *Default* | deb.debian.org | Google DNS | time.google.com | Global |
+| `--cloudflare` | deb.debian.org | Cloudflare | time.cloudflare.com | Global (privacy) |
+| `--aws` | cdn-aws.deb.debian.org | Google DNS | time.aws.com | AWS instances |
+| `--aliyun` | mirrors.aliyun.com | AliDNS | time.amazonaws.cn | China |
+| `--ustc` | mirrors.ustc.edu.cn | DNSPod | time.amazonaws.cn | China |
+| `--tuna` | mirrors.tuna.tsinghua.edu.cn | DNSPod | time.amazonaws.cn | China |
+
+## Complete Options Reference
+
+### System & User Configuration
+| Option | Default | Description |
+|--------|---------|-------------|
+| `--version 12` | `12` | Debian version: `10`, `11`, `12`, `13` |
+| `--suite bookworm` | `bookworm` | Debian suite: `stable`, `testing`, `sid`, etc. |
+| `--user debian` | `debian` | Username (use `root` for root-only) |
+| `--password PASSWORD` | *prompt* | User password (prompted if not specified) |
+| `--authorized-keys-url URL` | *password auth* | SSH keys from URL (e.g., `https://github.com/user.keys`) |
+| `--no-account-setup` | *create user* | Skip user creation (manual setup via console) |
+| `--sudo-with-password` | *no password* | Require password for sudo commands |
+| `--timezone UTC` | `UTC` | System timezone (e.g., `Asia/Shanghai`) |
+| `--hostname NAME` | *current* | System hostname |
+
+### Network Configuration
+| Option | Default | Description |
+|--------|---------|-------------|
+| `--interface auto` | `auto` | Network interface (e.g., `eth0`, `eth1`) |
+| `--ip ADDRESS` | *DHCP* | Static IP: `10.0.0.100`, `1.2.3.4/24`, `2001:db8::1/64` |
+| `--static-ipv4` | *DHCP* | Use current IPv4 settings automatically |
+| `--netmask MASK` | *auto* | Network mask: `255.255.255.0`, `ffff:ffff:ffff:ffff::` |
+| `--gateway ADDRESS` | *auto* | Gateway IP (use `none` for no gateway) |
+| `--dns '8.8.8.8 8.8.4.4'` | `1.1.1.1 1.0.0.1` | DNS servers for IPv4 |
+| `--dns6 '2001:4860:4860::8888'` | `2606:4700:4700::1111` | DNS servers for IPv6 |
+| `--ethx` | *consistent naming* | Use `eth0`/`eth1` instead of `enp0s3` style |
+| `--ntp time.google.com` | `time.google.com` | NTP server |
+
+### Network Console (Remote Installation)
+| Option | Default | Description |
+|--------|---------|-------------|
+| `--network-console` | *disabled* | Enable SSH access during installation |
+
+**Network Console Usage:**
+1. Enable with `--network-console` and reboot
+2. Wait 2-3 minutes for Debian installer to load components
+3. SSH to your server: `ssh installer@YOUR_IP`
+4. Use multiple terminals:
+ - **Alt+F1**: Main installer interface
+ - **Alt+F2**: Shell access
+ - **Alt+F3**: Additional shell
+ - **Alt+F4**: System logs (monitor automated installation progress)
+ - Navigate with Alt+Left/Alt+Right
+
+> [!IMPORTANT]
+> If `--authorized-keys-url` is used, SSH password authentication is disabled (SSH keys required), **but you still need to set a user password for VNC console and sudo access.**
+
+### Storage & Partitioning
+| Option | Default | Description |
+|--------|---------|-------------|
+| `--disk /dev/sda` | *auto-detect* | Target disk (**required** if multiple disks) |
+| `--no-disk-partitioning` | *auto partition* | Manual partitioning via console |
+| `--filesystem ext4` | `ext4` | Root filesystem type |
+| `--force-gpt` | *enabled* | Create GPT partition table |
+| `--no-force-gpt` | *use GPT* | Use MBR partition table instead |
+| `--bios` | *auto-detect* | Force BIOS boot (creates BIOS boot partition) |
+| `--efi` | *auto-detect* | Force EFI boot (creates EFI system partition) |
+| `--esp 106` | `106` | EFI system partition size (106=100MB, 538=512MB, 1075=1GB) |
+
+### Mirror & Repository Configuration
+| Option | Default | Description |
+|--------|---------|-------------|
+| `--mirror-protocol https` | `https` | Mirror protocol: `http`, `https`, `ftp` |
+| `--https` | *enabled* | Alias for `--mirror-protocol https` |
+| `--mirror-host deb.debian.org` | `deb.debian.org` | Mirror hostname |
+| `--mirror-directory /debian` | `/debian` | Mirror directory path |
+| `--mirror-proxy URL` | *none* | HTTP proxy for downloads and APT |
+| `--reuse-proxy` | *none* | Use existing `http_proxy` environment variable |
+| `--security-repository URL` | *auto* | Security updates repo (use `mirror` for main mirror) |
+
+### APT Repository Components
+| Option | Default | Description |
+|--------|---------|-------------|
+| `--apt-non-free-firmware` | *enabled* | Include non-free firmware (Debian 12+) |
+| `--apt-non-free` | *disabled* | Enable non-free repository |
+| `--apt-contrib` | *disabled* | Enable contrib repository |
+| `--apt-src` | *enabled* | Enable source repositories |
+| `--apt-backports` | *enabled* | Enable backports repository |
+| `--no-apt-non-free-firmware` | *use default* | Disable non-free firmware |
+| `--no-apt-non-free` | *use default* | Disable non-free |
+| `--no-apt-contrib` | *use default* | Disable contrib |
+| `--no-apt-src` | *use default* | Disable source repositories |
+| `--no-apt-backports` | *use default* | Disable backports |
+
+### Package Installation
+| Option | Default | Description |
+|--------|---------|-------------|
+| `--install 'pkg1 pkg2'` | *minimal* | Additional packages (space-separated, quoted) |
+| `--install-recommends` | *enabled* | Install recommended packages |
+| `--no-install-recommends` | *install recommends* | Skip recommended packages |
+| `--upgrade safe-upgrade` | `safe-upgrade` | Package upgrade mode |
+| `--safe-upgrade` | *default* | Safe package upgrades during install |
+| `--full-upgrade` | *safe upgrade* | Full system upgrade (`dist-upgrade`) |
+| `--no-upgrade` | *safe upgrade* | Skip package upgrades entirely |
+
+### Kernel Options
+| Option | Default | Description |
+|--------|---------|-------------|
+| `--kernel PACKAGE` | `linux-image-ARCH` | Kernel package name |
+| `--cloud-kernel` | *standard* | Use cloud-optimized kernel |
+| `--bpo-kernel` | *stable* | Use newer kernel from backports |
+| `--firmware` | *auto-detect* | Include non-free firmware for hardware |
+
+### Advanced Options
+| Option | Default | Description |
+|--------|---------|-------------|
+| `--ssh-port 2222` | `22` | Custom SSH port |
+| `--bbr` | *disabled* | Enable TCP BBR congestion control |
+| `--architecture amd64` | *auto-detect* | Target architecture: `amd64`, `arm64`, `i386`, etc. |
+| `--force-lowmem 1` | *auto* | Force low memory mode: `0`, `1`, `2` (for <512MB RAM) |
+| `--no-force-efi-extra-removable` | *enabled* | Disable EFI extra removable media path |
+| `--grub-timeout 5` | `5` | GRUB menu timeout in seconds |
+
+### Debian Installer Options
+| Option | Default | Description |
+|--------|---------|-------------|
+| `--release-d-i` | *auto* | Use release version of debian-installer |
+| `--daily-d-i` | *auto* | Use daily build of debian-installer |
+
+### Cloud-Init Integration
+| Option | Default | Description |
+|--------|---------|-------------|
+| `--cidata /path/to/dir` | *none* | Custom cloud-init data directory |
+
+**Cloud-Init Usage:**
+```bash
+# Create cloud-init configuration
+mkdir my-cloud-config
+echo "instance-id: my-server" > my-cloud-config/meta-data
+cat > my-cloud-config/user-data << 'EOF'
+#cloud-config
+hostname: my-server
+packages:
+ - htop
+ - git
+EOF
+
+# Use with installation
+sudo ./debi.sh --cidata my-cloud-config
+```
+
+### Development & Testing
+| Option | Default | Description |
+|--------|---------|-------------|
+| `--dry-run` | *execute* | Generate configuration without installing |
+| `--hold` | *reboot* | Don't reboot after installation |
+| `--power-off` | *reboot* | Power off instead of reboot |
+
+## Examples
+
+### Oracle Cloud (Ubuntu → Debian)
+```bash
+sudo ./debi.sh --cloudflare --user debian
+```
+
+### Google Cloud Platform
+```bash
+# GCP requires manual network (replace with your VPC settings)
+sudo ./debi.sh --ip 10.128.0.100/24 --gateway 10.128.0.1
+```
+
+### Minimal Installation
+```bash
+sudo ./debi.sh --no-install-recommends --install 'curl git vim' --no-upgrade
+```
+
+### China Deployment
+```bash
+sudo ./debi.sh --ustc --timezone Asia/Shanghai --dns '119.29.29.29'
+```
+
+### Network Console Installation
+```bash
+# Enable remote access during install (SSH keys for network, password still needed for VNC/sudo)
+sudo ./debi.sh --network-console --authorized-keys-url https://github.com/yourusername.keys
+# After reboot, SSH: ssh installer@YOUR_IP
+```
-1. Generate a preseed file to automate installation
-2. Download the 'Debian-Installer' to the `/boot` directory
-3. Append a menu entry of the installer to the GRUB2 configuration file
-
-## Usage
-
-### 1. Download
-
-Download the script with curl:
-
- curl -fLO https://raw.githubusercontent.com/bohanyang/debi/master/debi.sh
-
-or wget:
-
- wget -O debi.sh https://raw.githubusercontent.com/bohanyang/debi/master/debi.sh
-
-### 2. Run
-
-Run the script under root or using sudo:
-
- chmod a+rx debi.sh
- sudo ./debi.sh
-
-By default, an admin user `debian` with sudo privilege will be created during the installation. Use `--user root` if you prefer.
-
-### 3. Reboot
-
-If everything looks good, reboot the machine:
-
- sudo shutdown -r now
-
-Otherwise, you can run this command to revert all changes made by the script:
-
- sudo rm -rf debi.sh /etc/default/grub.d/zz-debi.cfg /boot/debian-* && { sudo update-grub || sudo grub2-mkconfig -o /boot/grub2/grub.cfg; }
-
-## Available Options
-
-### Presets
-
-| Region | Alias | Mirror | DNS | NTP |
-|--------|----------------|--------------------------------------|------------|---------------------|
-| Global | Default | https://deb.debian.org | Google | time.google.com |
-| Global | `--cloudflare` | https://deb.debian.org | Cloudflare | time.cloudflare.com |
-| Global | `--aws` | https://cdn-aws.deb.debian.org | Google | time.aws.com |
-| China | `--ustc` | https://mirrors.ustc.edu.cn | DNSPod | time.amazonaws.cn |
-| China | `--tuna` | https://mirrors.tuna.tsinghua.edu.cn | DNSPod | time.amazonaws.cn |
-| China | `--aliyun` | https://mirrors.aliyun.com | AliDNS | time.amazonaws.cn |
-
- * `--interface ` Manually select a network interface, e.g. eth1
- * `--ethx` Disable *Consistent Network Device Naming* to get interface names like *ethX* back
- * `--ip ` Disable the auto network config (DHCP) and configure a static IP address, e.g. `10.0.0.2`, `1.2.3.4/24`, `2001:2345:6789:abcd::ef/48`
- * `--static-ipv4` Disable the auto network config (DHCP) and configure with the current IPv4 address and gateway detected automatically
- * `--netmask ` e.g. `255.255.255.0`, `ffff:ffff:ffff:ffff::`
- * `--gateway ` e.g. `10.0.0.1`, `none` if no gateway
- * `--dns '8.8.8.8 8.8.4.4'`
- * `--dns6 '2001:4860:4860::8888 2001:4860:4860::8844'` (effective only if IPv6 is specified)
- * `--hostname ` FQDN hostname (includes the domain name), e.g. `server1.example.com`
- * `--network-console` Enable the network console of the installer. `ssh installer@ip` to connect
- * `--version 12` Supports: `10`, `11`, `12`, `13`
- * `--suite bullseye` **Please use `--version` instead if you don't have special needs.** e.g. `stable`, `testing`, `sid`
- * `--release-d-i` d-i (Debian Installer) for the released versions: 12 (bookworm), 11 (bullseye) and 10 (buster)
- * `--daily-d-i` Use latest daily build of d-i (Debian Installer) for the unreleased version: 13 (trixie), sid (unstable)
- * `--mirror-protocol http` or `https` or `ftp`
- * `--https` alias to `--mirror-protocol https`
- * `--reuse-proxy` Reuse the value of `http(s)_proxy` environment variable as the mirror proxy
- * `--proxy, --mirror-proxy` Set an HTTP proxy for APT and downloads
- * `--mirror-host deb.debian.org`
- * `--mirror-directory /debian`
- * `--security-repository http://security.debian.org/debian-security` Magic value: `'mirror' = :////../debian-security`
- * `--no-account-setup, --no-user` **(Manual installation)** Proceed account setup manually in VNC or remote console.
- * `--username, --user debian` New user with `sudo` privilege or `root`
- * `--password ` Password of the new user. **You'll be prompted if you choose to not specify it here**
- * `--authorized-keys-url ` URL to your authorized keys for SSH authentication. e.g. `https://github.com/torvalds.keys`
- * `--sudo-with-password` Require password when the user invokes `sudo` command
- * `--timezone UTC` e.g. `Asia/Shanghai` for China (UTC+8) https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List
- * `--ntp time.google.com`
- * `--no-disk-partitioning, --no-part` **(Manual installation)** Proceed disk partitioning manually in VNC or remote console
- * `--disk ` Manually select a disk for installation. **Please remember to specify this when more than one disk is available!** e.g. `/dev/sda`
- * `--no-force-gpt` By default, GPT rather than MBR partition table will be created. This option disables it.
- * `--bios` Don't create *EFI system partition*. If GPT is being used, create a *BIOS boot partition* (`bios_grub` partition). Default if `/sys/firmware/efi` is absent. [See](https://askubuntu.com/a/501360)
- * `--efi` Create an *EFI system partition*. Default if `/sys/firmware/efi` exists
- * `--esp 106` Size of the *EFI system partition*. e.g. `106`, `538` and `1075` result to 100 MiB, 512 MiB, 1 GiB respectively
- * `--filesystem ext4`
- * `--kernel ` Choose an package for the kernel image
- * `--cloud-kernel` Choose `linux-image-cloud-amd64` or `...arm64` as the kernel image
- * `--bpo-kernel` Choose the kernel image from Debian Backports (newer version from the next Debian release)
- * `--no-install-recommends`
- * `--apt-non-free-firmware`, `--apt-non-free`, `--apt-contrib`, `--apt-src`, `--apt-backports`
- * `--no-apt-non-free-firmware`, `--no-apt-non-free`, `--no-apt-contrib`, `--no-apt-src`, `--no-apt-backports`
- * `--install 'ca-certificates libpam-systemd'` Install additional APT packages. Space-separated and quoted.
- * `--safe-upgrade` **(Default)** `apt upgrade --with-new-pkgs`. [See](https://salsa.debian.org/installer-team/pkgsel/-/blob/master/debian/postinst)
- * `--full-upgrade` `apt dist-upgrade`
- * `--no-upgrade`
- * `--bbr` Enable TCP BBR congestion control
- * `--ssh-port ` SSH port
- * `--hold` Don't reboot or power off after installation
- * `--power-off` Power off after installation rather than reboot
- * `--architecture ` e.g. `amd64`, `i386`, `arm64`, `armhf`, etc.
- * `--firmware` Load additional [non-free firmwares](https://wiki.debian.org/Firmware#Firmware_during_the_installation)
- * `--no-force-efi-extra-removable` [See](https://wiki.debian.org/UEFI#Force_grub-efi_installation_to_the_removable_media_path)
- * `--grub-timeout 5` How many seconds the GRUB menu shows before entering the installer
- * `--force-lowmem ` Valid values: 0, 1, 2. Force [low memory level](https://salsa.debian.org/installer-team/lowmem). Useful if your machine has memory less than 500M where level 2 is set (see issue #45). `--force-lowmem 1` may solve it.
- * `--dry-run` Print generated preseed and GRUB entry without downloading the installer and actually saving them
- * `--cidata ./cidata-example` Custom data for cloud-init. **VM provider's data source will be IGNORED.** See example.
-
-## 中文说明
-
-下载脚本:
+### Static Network with Cloud-Init
+```bash
+sudo ./debi.sh --ip 192.168.1.100/24 --gateway 192.168.1.1 --cidata ./cloud-config/
+```
+### Advanced Custom Configuration
+```bash
+sudo ./debi.sh \
+ --version 12 \
+ --user admin \
+ --timezone Europe/London \
+ --disk /dev/nvme0n1 \
+ --filesystem btrfs \
+ --cloud-kernel \
+ --bbr \
+ --ssh-port 2222 \
+ --install 'htop iotop ncdu'
```
-curl -fLO https://raw.githubusercontent.com/bohanyang/debi/master/debi.sh && chmod a+rx debi.sh
+
+## Troubleshooting
+
+### Revert All Changes
+```bash
+# Remove all modifications and restore original GRUB
+sudo rm -rf /etc/default/grub.d/zz-debi.cfg /boot/debian-*
+sudo update-grub || sudo grub2-mkconfig -o /boot/grub2/grub.cfg
```
-运行脚本:
+### Common Issues
+**Multiple disks detected:**
+```bash
+# List available disks
+lsblk
+# Specify target disk
+sudo ./debi.sh --disk /dev/sda
```
-sudo ./debi.sh --cdn --network-console --ethx --bbr --user root --password <新系统用户密码>
+
+**Low memory VPS (<512MB):**
+```bash
+sudo ./debi.sh --force-lowmem 1
```
-* `--bbr` 开启 BBR
-* `--ethx` 网卡名称使用传统形式,如 `eth0` 而不是 `ens3`
-* `--cloud-kernel` 安装占用空间较小的 `cloud` 内核,但可能会导致 UEFI 启动的机器(如 Oracle、Azure 及 Hyper-V、Google Cloud 等)VNC 黑屏。BIOS 启动的普通 VPS 则没有此问题。
-* 默认时区为 UTC,添加 `--timezone Asia/Shanghai` 可使用中国时区。
-* 默认使用 Debian 官方 CDN 镜像源(deb.debian.org),添加 `--ustc` 可使用中科大镜像源。
+**Network configuration fails:**
+```bash
+# Use current network settings
+sudo ./debi.sh --static-ipv4
-如果没有报错可以重启:
+# Or configure manually
+sudo ./debi.sh --ip YOUR_IP/CIDR --gateway YOUR_GATEWAY
+```
+**Need firmware for network card:**
+```bash
+sudo ./debi.sh --firmware
```
-sudo shutdown -r now
+
+**Installation debugging:**
+```bash
+# Generate preseed file only
+sudo ./debi.sh --dry-run
+
+# Enable network console for remote access (SSH keys for remote, password for VNC/sudo)
+sudo ./debi.sh --network-console --authorized-keys-url YOUR_KEYS_URL
```
-约 30 秒后可以尝试 SSH 登录 `installer` 用户,密码与之前设置的相同。如果成功连接,可以按 Ctrl-A 然后再按 4 监控安装日志。安装完成后会自动重启进入新系统。
+## How It Works
+
+1. **Downloads Debian installer** to `/boot/debian-$VERSION/`
+2. **Generates preseed file** with your configuration
+3. **Modifies GRUB configuration** (adds installer menu entry)
+4. **Injects configuration** into installer initramfs
+5. **Updates GRUB** to include new boot option
+
+**Changes made to your system:**
+- Files added to `/boot/debian-*/`
+- GRUB configuration in `/etc/default/grub.d/zz-debi.cfg`
+- Updated GRUB menu
+
+**These changes are safe and reversible** before reboot using the revert command above.
+
+---
+
+*Created by [@bohanyang](https://github.com/bohanyang) • [Issues](https://github.com/bohanyang/debi/issues) • [GitHub](https://github.com/bohanyang/debi)*
diff --git a/README.zh-CN.md b/README.zh-CN.md
new file mode 100644
index 0000000..2fc85d0
--- /dev/null
+++ b/README.zh-CN.md
@@ -0,0 +1,357 @@
+
+
+# Debian 网络重装脚本
+
+## 这是什么?
+
+一个通过网络启动(network boot)方式,将任何 VPS 或物理机重装为最小化 Debian 系统的脚本。其工作原理是将 Debian 安装程序注入到 GRUB 中,并自动完成安装过程的配置。
+
+**非常适合以下场景:**
+
+ - 将 Oracle Cloud 的 Ubuntu 镜像更换为 Debian
+ - 移除云服务商内置的监控代理
+ - 创建最小、纯净的 Debian 环境
+ - 使用 preseed 或 cloud-init 实现自动化安装
+ - 拯救或恢复损坏的系统
+
+## 快速上手
+
+```bash
+# 下载脚本
+curl -fLO https://raw.githubusercontent.com/bohanyang/debi/master/debi.sh
+chmod +x debi.sh
+
+# 基础安装 (会创建一个拥有 sudo 权限的 'debian' 用户)
+sudo ./debi.sh
+
+# 或者,直接以 root 用户安装
+sudo ./debi.sh --user root
+
+# 准备就绪后重启
+sudo reboot
+```
+
+**默认设置:** Debian 12 (bookworm),DHCP 网络,创建一个名为 `debian` 并拥有 sudo 权限的用户,脚本会提示你为该用户设置密码。
+
+## 平台支持
+
+| 平台 | 状态 | 备注 |
+| :--- | :--- | :--- |
+| ✅ **KVM/物理机** | 完全支持 | 所有功能均可正常工作 |
+| ✅ **大多数 VPS** | 完全支持 | DigitalOcean, Vultr, Linode 等 |
+| ⚠️ **Google Cloud** | 需要手动配置网络 | 必须使用 `--ip` 和 `--gateway` (DHCP 工作不正常) |
+| ⚠️ **AWS EC2** | 仅支持 BIOS | 尚不支持 UEFI 启动模式 |
+| ❌ **容器** | 不支持 | 需要 GRUB 引导加载程序 |
+
+**环境要求:**
+
+ - KVM 虚拟化或物理机 (不支持容器)
+ - GRUB 2 引导加载程序
+ - Root 权限
+
+## 区域预设
+
+| 预设 | 镜像源 | DNS | NTP | 适用场景 |
+| :--- | :--- | :--- | :--- | :--- |
+| *默认* | deb.debian.org | Google DNS | time.google.com | 全球通用 |
+| `--cloudflare` | deb.debian.org | Cloudflare | time.cloudflare.com | 全球通用 (注重隐私) |
+| `--aws` | cdn-aws.deb.debian.org | Google DNS | time.aws.com | AWS 实例 |
+| `--aliyun` | mirrors.aliyun.com | AliDNS | time.amazonaws.cn | 中国大陆 |
+| `--ustc` | mirrors.ustc.edu.cn | DNSPod | time.amazonaws.cn | 中国大陆 |
+| `--tuna` | mirrors.tuna.tsinghua.edu.cn | DNSPod | time.amazonaws.cn | 中国大陆 |
+
+## 完整选项参考
+
+### 系统和用户配置
+
+| 选项 | 默认值 | 描述 |
+| :--- | :--- | :--- |
+| `--version 12` | `12` | Debian 版本:`10`, `11`, `12`, `13` |
+| `--suite bookworm` | `bookworm` | Debian 发行代号:`stable`, `testing`, `sid` 等 |
+| `--user debian` | `debian` | 用户名 (使用 `root` 则只创建 root 用户) |
+| `--password PASSWORD` | *交互式提示* | 用户密码 (如果未指定,则会提示输入) |
+| `--authorized-keys-url URL` | *密码认证* | 从 URL 加载 SSH 公钥 (例如 `https://github.com/user.keys`) |
+| `--no-account-setup` | *创建用户* | 跳过用户创建步骤 (需要通过控制台手动设置) |
+| `--sudo-with-password` | *无需密码* | 执行 sudo 命令时需要输入密码 |
+| `--timezone UTC` | `UTC` | 系统时区 (例如 `Asia/Shanghai`) |
+| `--hostname NAME` | *当前主机名* | 系统主机名 |
+
+### 网络配置
+
+| 选项 | 默认值 | 描述 |
+| :--- | :--- | :--- |
+| `--interface auto` | `auto` | 网络接口 (例如 `eth0`, `eth1`) |
+| `--ip ADDRESS` | *DHCP* | 静态 IP:`10.0.0.100`, `1.2.3.4/24`, `2001:db8::1/64` |
+| `--static-ipv4` | *DHCP* | 自动使用当前系统的 IPv4 设置 |
+| `--netmask MASK` | *自动* | 子网掩码:`255.255.255.0`, `ffff:ffff:ffff:ffff::` |
+| `--gateway ADDRESS` | *自动* | 网关 IP (使用 `none` 表示无网关) |
+| `--dns '8.8.8.8 8.8.4.4'` | `1.1.1.1 1.0.0.1` | IPv4 的 DNS 服务器 |
+| `--dns6 '2001:4860:4860::8888'` | `2606:4700:4700::1111` | IPv6 的 DNS 服务器 |
+| `--ethx` | *一致性命名* | 使用 `eth0`/`eth1` 风格的网卡名,而不是 `enp0s3` |
+| `--ntp time.google.com` | `time.google.com` | NTP 时间服务器 |
+
+### 网络控制台 (远程安装)
+
+| 选项 | 默认值 | 描述 |
+| :--- | :--- | :--- |
+| `--network-console` | *禁用* | 在安装过程中启用 SSH 访问 |
+
+**网络控制台用法:**
+
+1. 使用 `--network-console` 参数并重启
+2. 等待 2-3 分钟,让 Debian 安装程序加载组件
+3. 通过 SSH 连接到你的服务器:`ssh installer@YOUR_IP`
+4. 使用多个终端窗口进行操作:
+ - **Alt+F1**: 主安装界面
+ - **Alt+F2**: Shell 终端
+ - **Alt+F3**: 另一个 Shell 终端
+ - **Alt+F4**: 系统日志 (可监控自动化安装进度)
+ - 使用 Alt+Left/Alt+Right 切换
+
+
+**⚠️ 注意事项**
+
+如果使用了 `--authorized-keys-url`,SSH 的密码认证将被禁用 (必须使用 SSH 密钥登录),**但你仍然需要设置一个用户密码**,用于 VNC 控制台登录和执行 sudo 命令。
+
+### 存储和分区
+
+| 选项 | 默认值 | 描述 |
+| :--- | :--- | :--- |
+| `--disk /dev/sda` | *自动检测* | 目标磁盘 (**如果有多块磁盘,此项为必填**) |
+| `--no-disk-partitioning` | *自动分区* | 通过控制台手动分区 |
+| `--filesystem ext4` | `ext4` | 根文件系统类型 |
+| `--force-gpt` | *启用* | 创建 GPT 分区表 |
+| `--no-force-gpt` | *使用 GPT* | 使用 MBR 分区表代替 GPT |
+| `--bios` | *自动检测* | 强制使用 BIOS 启动 (会创建 BIOS boot 分区) |
+| `--efi` | *自动检测* | 强制使用 EFI 启动 (会创建 EFI 系统分区) |
+| `--esp 106` | `106` | EFI 系统分区 (ESP) 大小 (106=100MB, 538=512MB, 1075=1GB) |
+
+### 镜像源和仓库配置
+
+| 选项 | 默认值 | 描述 |
+| :--- | :--- | :--- |
+| `--mirror-protocol https` | `https` | 镜像源协议:`http`, `https`, `ftp` |
+| `--https` | *启用* | `--mirror-protocol https` 的别名 |
+| `--mirror-host deb.debian.org` | `deb.debian.org` | 镜像源主机名 |
+| `--mirror-directory /debian` | `/debian` | 镜像源目录路径 |
+| `--mirror-proxy URL` | *无* | 用于下载和 APT 的 HTTP 代理 |
+| `--reuse-proxy` | *无* | 使用当前环境中的 `http_proxy` 变量 |
+| `--security-repository URL` | *自动* | 安全更新仓库地址 (使用 `mirror` 表示与主镜像源一致) |
+
+### APT 仓库组件
+
+| 选项 | 默认值 | 描述 |
+| :--- | :--- | :--- |
+| `--apt-non-free-firmware` | *启用* | 包含 non-free-firmware (Debian 12+) |
+| `--apt-non-free` | *禁用* | 启用 non-free 仓库 |
+| `--apt-contrib` | *禁用* | 启用 contrib 仓库 |
+| `--apt-src` | *启用* | 启用源码仓库 |
+| `--apt-backports` | *启用* | 启用 backports 仓库 |
+| `--no-apt-non-free-firmware` | *使用默认值* | 禁用 non-free-firmware |
+| `--no-apt-non-free` | *使用默认值* | 禁用 non-free |
+| `--no-apt-contrib` | *使用默认值* | 禁用 contrib |
+| `--no-apt-src` | *使用默认值* | 禁用源码仓库 |
+| `--no-apt-backports` | *使用默认值* | 禁用 backports |
+
+### 软件包安装
+
+| 选项 | 默认值 | 描述 |
+| :--- | :--- | :--- |
+| `--install 'pkg1 pkg2'` | *最小化* | 额外安装的软件包 (用空格分隔,并用引号括起来) |
+| `--install-recommends` | *启用* | 安装推荐的软件包 |
+| `--no-install-recommends` | *安装推荐包* | 跳过推荐的软件包 |
+| `--upgrade safe-upgrade` | `safe-upgrade` | 软件包升级模式 |
+| `--safe-upgrade` | *默认* | 在安装过程中执行安全的软件包升级 |
+| `--full-upgrade` | *安全升级* | 执行完整的系统升级 (`dist-upgrade`) |
+| `--no-upgrade` | *安全升级* | 完全跳过软件包升级 |
+
+### 内核选项
+
+| 选项 | 默认值 | 描述 |
+| :--- | :--- | :--- |
+| `--kernel PACKAGE` | `linux-image-ARCH` | 内核软件包名称 |
+| `--cloud-kernel` | *标准内核* | 使用为云环境优化的内核 |
+| `--bpo-kernel` | *稳定版内核* | 使用来自 backports 的较新内核 |
+| `--firmware` | *自动检测* | 为硬件安装 non-free 固件 |
+
+### 高级选项
+
+| 选项 | 默认值 | 描述 |
+| :--- | :--- | :--- |
+| `--ssh-port 2222` | `22` | 自定义 SSH 端口 |
+| `--bbr` | *禁用* | 启用 TCP BBR 拥塞控制算法 |
+| `--architecture amd64` | *自动检测* | 目标系统架构:`amd64`, `arm64`, `i386` 等 |
+| `--force-lowmem 1` | *自动* | 强制开启低内存模式:`0`, `1`, `2` (适用于内存 \<512MB 的机器) |
+| `--no-force-efi-extra-removable` | *启用* | 禁用 EFI 的 extra removable media 路径 |
+| `--grub-timeout 5` | `5` | GRUB 菜单等待超时时间 (秒) |
+
+### Debian 安装程序选项
+
+| 选项 | 默认值 | 描述 |
+| :--- | :--- | :--- |
+| `--release-d-i` | *自动* | 使用发布版的 debian-installer |
+| `--daily-d-i` | *自动* | 使用每日构建版的 debian-installer |
+
+### Cloud-Init 集成
+
+| 选项 | 默认值 | 描述 |
+| :--- | :--- | :--- |
+| `--cidata /path/to/dir` | *无* | 自定义 cloud-init 数据目录 |
+
+**Cloud-Init 用法:**
+
+```bash
+# 创建 cloud-init 配置文件
+mkdir my-cloud-config
+echo "instance-id: my-server" > my-cloud-config/meta-data
+cat > my-cloud-config/user-data << 'EOF'
+#cloud-config
+hostname: my-server
+packages:
+ - htop
+ - git
+EOF
+
+# 在安装时使用
+sudo ./debi.sh --cidata my-cloud-config
+```
+
+### 开发与测试
+
+| 选项 | 默认值 | 描述 |
+| :--- | :--- | :--- |
+| `--dry-run` | *执行* | 只生成配置文件,不执行安装 |
+| `--hold` | *重启* | 安装后不重启 |
+| `--power-off` | *重启* | 安装后关机而不是重启 |
+
+## 使用示例
+
+### Oracle Cloud (Ubuntu → Debian)
+
+```bash
+sudo ./debi.sh --cloudflare --user debian
+```
+
+### Google Cloud Platform
+
+```bash
+# GCP 需要手动配置网络 (请替换为你的 VPC 设置)
+sudo ./debi.sh --ip 10.128.0.100/24 --gateway 10.128.0.1
+```
+
+### 最小化安装
+
+```bash
+sudo ./debi.sh --no-install-recommends --install 'curl git vim' --no-upgrade
+```
+
+### 中国大陆部署
+
+```bash
+sudo ./debi.sh --ustc --timezone Asia/Shanghai --dns '119.29.29.29'
+```
+
+### 使用网络控制台安装
+
+```bash
+# 在安装过程中启用远程访问 (SSH 密钥用于网络登录,密码仍需用于 VNC/sudo)
+sudo ./debi.sh --network-console --authorized-keys-url https://github.com/yourusername.keys
+# 重启后,通过 SSH 连接: ssh installer@YOUR_IP
+```
+
+### 静态网络与 Cloud-Init
+
+```bash
+sudo ./debi.sh --ip 192.168.1.100/24 --gateway 192.168.1.1 --cidata ./cloud-config/
+```
+
+### 高级自定义配置
+
+```bash
+sudo ./debi.sh \
+ --version 12 \
+ --user admin \
+ --timezone Europe/London \
+ --disk /dev/nvme0n1 \
+ --filesystem btrfs \
+ --cloud-kernel \
+ --bbr \
+ --ssh-port 2222 \
+ --install 'htop iotop ncdu'
+```
+
+## 故障排查
+
+### 撤销所有更改
+
+```bash
+# 移除所有修改并恢复原始的 GRUB 配置
+sudo rm -rf /etc/default/grub.d/zz-debi.cfg /boot/debian-*
+sudo update-grub || sudo grub2-mkconfig -o /boot/grub2/grub.cfg
+```
+
+### 常见问题
+
+**检测到多块磁盘:**
+
+```bash
+# 列出可用磁盘
+lsblk
+# 指定目标磁盘
+sudo ./debi.sh --disk /dev/sda
+```
+
+**低内存 VPS (\<512MB):**
+
+```bash
+sudo ./debi.sh --force-lowmem 1
+```
+
+**网络配置失败:**
+
+```bash
+# 使用当前系统的网络设置
+sudo ./debi.sh --static-ipv4
+
+# 或者手动配置
+sudo ./debi.sh --ip YOUR_IP/CIDR --gateway YOUR_GATEWAY
+```
+
+**网卡需要固件 (firmware):**
+
+```bash
+sudo ./debi.sh --firmware
+```
+
+**安装过程调试:**
+
+```bash
+# 只生成 preseed 文件
+sudo ./debi.sh --dry-run
+
+# 启用网络控制台进行远程访问 (SSH 密钥用于远程登录,密码用于 VNC/sudo)
+sudo ./debi.sh --network-console --authorized-keys-url YOUR_KEYS_URL
+```
+
+## 工作原理
+
+1. **下载 Debian 安装程序** 到 `/boot/debian-$VERSION/` 目录
+2. 根据你的配置**生成 preseed 应答文件**
+3. **修改 GRUB 配置** (添加一个新的安装程序菜单项)
+4. 将配置文件**注入到安装程序的 initramfs** 中
+5. **更新 GRUB** 以加载新的启动选项
+
+**对你系统所做的更改:**
+
+ - 在 `/boot/debian-*/` 目录中添加文件
+ - 在 `/etc/default/grub.d/zz-debi.cfg` 创建 GRUB 配置文件
+ - 更新 GRUB 菜单
+
+**在重启之前,所有这些更改都是安全且可逆的**,可以使用上面的撤销命令来恢复。
+
+-----
+
+*作者 [@bohanyang](https://github.com/bohanyang) • [问题反馈](https://github.com/bohanyang/debi/issues) • [GitHub 仓库](https://github.com/bohanyang/debi)*
+
+
+