Debian 12 のインストール

個人用のメモ
# インストールの方針
- LVM & Btrfs を使う
- Xは入れない
- インストーラでパッケージは入れない
- インストーラで /etc/apt/sources.list にミラーサイトを追加して貰う
- IP アドレスはインストール時に DHCP、インストール後に手動で固定
- キーボードレイアウトは us
- ログインシェルは tcsh

自分のインストール用メモのため、特殊設定なのはご愛敬。適宜書き換えているのでプロンプトなどの統一感が無いのはご容赦。

# swap を目的の容量にする
実メモリが 16GB しかないので swap を 64GB にする。

# ダウンロード
[Debian プロジェクト](https://www.debian.org/) からダウンロードします。
国内であれば[理研](http://ftp.riken.jp/Linux/debian/debian-cd/)などにミラーサイトがあります。

普通の Intel や AMD のマシンなら debian-～-amd64-netinst.iso で良いでしょう。
netinst を使うと、インストール時に選んだミラー先で sources.list を上書きしてくれます。
何度もインストールし直したりする場合は debian-～-amd64-DVD-1.iso という iso-dvd イメージが良いかも知れません。

swap バーティションがデフォルトで 1GB なのは小さいので手動 (今回は 64GB) で設定します。
/ パーティションは Btrfs にします。

:::note warn
Btrfs は ext3 や ext4 のように枯れていません。
例えば df や du が正しい値を返しません。
df の代わりに `btrfs filesystem usage /` や、一般ユーザの場合は `btrfs filesystem df /` を使ったり、du の代わりに `btdu` (別パッケージ) を使う必要があります。
また、パフォーマンスの最適化もされていません。
日本語で Btrfs の現状は [archlinux](https://wiki.archlinux.jp/index.php/Btrfs) のページが一番纏まっていると思います。
:::

# ISO イメージを USB メモリに書き込みます
[Rufus](https://rufus.ie/ja/) で書き込めます。

# インストーラから起動、インストール開始
(略)

## インストーラでの操作
ディスクのパーティショニング

- パーティショニングの方法
　ガイド - ディスク全体を使い LVM をセットアップする

- パーティショニングするディスクの選択
　SCSI (0,0,0)...

- パーティショニング機構
　すべてのファイルを 1 つのパーティションに (初心者ユーザには推奨)

- ディスクへの変更を書き込み、LVM を設定しますか？
　はい


- ガイドによるパーティショニングを利用するボリューム
　max (そのまま)

- ディスクに変更を書き込みますか？
　いいえ

- ディスクのパーティショニング
　「論理ボリュームマネージャの設定」 を選択

　ディスクへの変更を書き込み、LVM を設定しますか？
　「はい」

- 現在の LVM 設定の概要
 「論理ボリュームの削除」

- 削除する論理ボリュームを選択してください
 root, swap_1 両方とも削除

- 現在の LVM 設定の概要
　「論理ボリュームの作成」

- ボリュームグループ
　ボリュームグループを選択 (普通は一つしか表示されない)

- 論理ボリューム名 (先に swap の領域を確保する)
　swap_1

- 論理ボリュームサイズ (ちょっと小さくなることもあるので .1とか付けても良いかも？)
　64GB

- LVM 設定アクション
　論理ボリュームの作成

- ボリュームグループ
　ボリュームを選択

- 論理ボリューム名
　root

- 論理ボリュームサイズ
　残り全部 (表示される値をそのまま)

- LVM 設定アクション
　完了

　ルートパーティションの領域を選択

- パーティション設定
　利用方法 ➡ btrfs ジャーナリングファイルシステム
　マウントポイント ➡ /
　ラベル ➡ root

　パーティションのセットアップを終了


　スワップ領域を選択

- パーティション設定
　利用方法 ➡ スワップ領域

　パーティションのセットアップを終了


　パーティショニングの終了とディスクへの変更書き込み
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306041/c03a243a-0604-364f-ede9-f5929f1c5c54.png)

- ディスクに変更を書き込みますか？
　はい

- パッケージマネージャの設定　インストールステップが失敗しました
　続ける

ｰ ベースシステムのインストール
　続ける

## パッケージのインストールが終わってから
- 別のインストールメディアを検査しますか？
　いいえ

- Debian アーカイブミラーの国
　日本

- Debian アーカイブミラー
　ftp.jaist.ac.jp
(一覧にあっても、ミラーしておらずエラーになる所もあるので、その場合は違うところを選択し直してください)

再起動

# swap をなくす場合 (kubanetics などで swap を切る必要がある場合)
「ディスクのパーティショニング」で、「ガイド ｰ ディスク全体を使い LVM をセットアップする」
「すべてのファイルを1つのパーティションに (初心者ユーザには推奨)」
でインストールを完了させ初回ログオンを行ったあとに...

## `vi /etc/fstab` で swap の行を削除し再起動
再起動の代わりに `swapoff -a` でも可能。

## swap 用の lv (論理ボリューム) を削除

swap をマウントしていないことを確認
```bash:
root@debian:~# free
               total        used        free      shared  buff/cache   available
Mem:        16375068      416500    16071524         728      111904    15958568
Swap:              0           0           0
root@debian:~#
```

swap 領域の容量と名前を確認
```tcsh:
root@debian:~# lvs
  LV     VG        Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root   debian-vg -wi-ao----  38.06g
  swap_1 debian-vg -wi-a----- 980.00m
root@debian:~# lvdisplay
  --- Logical volume ---
  LV Path                /dev/debian-vg/root
  LV Name                root
  VG Name                debian-vg
  LV UUID                W17g8e-HK0L-guFI-Qkle-8Ech-FInE-ktuE4N
  LV Write Access        read/write
  LV Creation host, time debian, 2024-05-17 14:11:38 +0900
  LV Status              available
  # open                 1
  LV Size                38.06 GiB
  Current LE             9744
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           254:0

  --- Logical volume ---
  LV Path                /dev/debian-vg/swap_1  👈 lv を削除するときに指定する名前
  LV Name                swap_1
  VG Name                debian-vg
  LV UUID                2GG5X4-0mxn-4fZD-DnEO-Iivw-GiKD-5XzB6K
  LV Write Access        read/write
  LV Creation host, time debian, 2024-05-17 14:11:38 +0900
  LV Status              available
  # open                 0
  LV Size                980.00 MiB
  Current LE             245
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           254:1
```

削除を実行
```tcsh:
root@debian:~# lvremove /dev/debian-vg/swap_1
Do you really want to remove active logical volume debian-vg/swap_1? [y/n]: y
  Logical volume "swap_1" successfully removed.
root@debian:~#
```
swap 用の lv が削除されたことを確認
```tcsh:
root@debian:~# lvdisplay
  --- Logical volume ---
  LV Path                /dev/debian-vg/root
  LV Name                root
  VG Name                debian-vg
  LV UUID                W17g8e-HK0L-guFI-Qkle-8Ech-FInE-ktuE4N
  LV Write Access        read/write
  LV Creation host, time debian, 2024-05-17 14:11:38 +0900
  LV Status              available
  # open                 1
  LV Size                38.06 GiB
  Current LE             9744
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           254:0

root@debian:~# lvs
  LV   VG        Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root debian-vg -wi-ao---- 38.06g
```
領域が空いてしまうのでルートパーティションへ割り当てます。

### 空き領域を root の論理ボリュームへ追加
```tcsh:
root@debian:~# lvextend -l+100%FREE /dev/debian-vg/root
  Size of logical volume debian-vg/root changed from 38.06 GiB (9744 extents) to <39.02 GiB (9989 extents).
  Logical volume debian-vg/root successfully resized.
root@debian:~# lvs
  LV   VG        Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root debian-vg -wi-ao---- <39.02g
```

### ファイルシステムも拡張する (ext4)
ファイルシステムのサイズが増えていないのでこちらも拡張する
```tcsh:ext4 の拡張
root@debian:~# resize2fs /dev/debian-vg/root
resize2fs 1.47.0 (5-Feb-2023)
Filesystem at /dev/debian-vg/root is mounted on /; on-line resizing required
old_desc_blocks = 5, new_desc_blocks = 5
The filesystem on /dev/debian-vg/root is now 10228736 (4k) blocks long.

root@debian:~# df -h /
ファイルシス                サイズ  使用  残り 使用% マウント位置
/dev/mapper/debian--vg-root    39G  1.8G   35G    5% /
```
1GB だけですがちゃんと増えましたね。

### ファイルシステムも拡張する (btrfs)
ファイルシステムのサイズが増えていないのでこちらも拡張する
```tcsh:事前
root@debian:~# btrfs filesystem usage /
Overall:
    Device size:                  38.06GiB    👈 ここから ➊
    Device allocated:              3.02GiB
    Device unallocated:           35.04GiB
    Device missing:                  0.00B
    Device slack:                980.00MiB
    Used:                          1.81GiB
    Free (estimated):             35.32GiB      (min: 17.80GiB)
    Free (statfs, df):            35.32GiB
    Data ratio:                       1.00
    Metadata ratio:                   2.00
    Global reserve:                3.97MiB      (used: 0.00B)
    Multiple profiles:                  no

Data,single: Size:2.01GiB, Used:1.72GiB (85.91%)
   /dev/mapper/debian--vg-root     2.01GiB

Metadata,DUP: Size:512.00MiB, Used:43.02MiB (8.40%)
   /dev/mapper/debian--vg-root     1.00GiB

System,DUP: Size:8.00MiB, Used:16.00KiB (0.20%)
   /dev/mapper/debian--vg-root    16.00MiB

Unallocated:
   /dev/mapper/debian--vg-root    35.04GiB
root@debian:~# btrfs filesystem show /
Label: none  uuid: 5cd97bb1-e35e-4653-bc96-e9172b2c62c4
        Total devices 1 FS bytes used 1.77GiB
        devid    1 size 38.06GiB used 3.02GiB path /dev/mapper/debian--vg-root  👈 38.06GiB ➋
```
```tcsh:btrfs の拡張
root@debian:~# btrfs filesystem resize max /
Resize device id 1 (/dev/mapper/debian--vg-root) from 38.06GiB to max
```
```tcsh:事後
root@debian:~# btrfs filesystem show /
Label: none  uuid: 5cd97bb1-e35e-4653-bc96-e9172b2c62c4
        Total devices 1 FS bytes used 1.77GiB
        devid    1 size 39.02GiB used 3.02GiB path /dev/mapper/debian--vg-root  👈 39.02GiB ➋'

root@debian:~# btrfs filesystem usage /
Overall:
    Device size:                  39.02GiB    👈 38.06GiB ➡ 39.02GiB へ増加 ➊'
    Device allocated:              3.02GiB
    Device unallocated:           36.00GiB
    Device missing:                  0.00B
    Device slack:                    0.00B
    Used:                          1.81GiB
    Free (estimated):             36.28GiB      (min: 18.28GiB)
    Free (statfs, df):            36.28GiB
    Data ratio:                       1.00
    Metadata ratio:                   2.00
    Global reserve:                3.97MiB      (used: 0.00B)
    Multiple profiles:                  no

Data,single: Size:2.01GiB, Used:1.72GiB (85.91%)
   /dev/mapper/debian--vg-root     2.01GiB

Metadata,DUP: Size:512.00MiB, Used:43.02MiB (8.40%)
   /dev/mapper/debian--vg-root     1.00GiB

System,DUP: Size:8.00MiB, Used:16.00KiB (0.20%)
   /dev/mapper/debian--vg-root    16.00MiB

Unallocated:
   /dev/mapper/debian--vg-root    36.00GiB
```


# タイムゾーンの設定
対話型だと `dpkg-reconfigure tzdata` でできるけどリンクを張るだけなので、余り使う必要はないかも。
```bash:
ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
```

# contrib non-free をsources.list へ追加
```
sed -i.orig -e '/^deb/s/$/ contrib non-free/' /etc/apt/sources.list
```

# パッケージの更新
```tcsh
apt update ; apt full-upgrade -y ; apt autoremove -y ; apt purge -y
```

# パッケージの追加
```
apt -y install git locate tcsh nvi screen sudo
apt -y remove nano
apt -y install sharutils manpages manpages-dev manpages-ja manpages-ja-dev syslog-ng zip bind9-dnsutils htop net-tools fdclone psmisc
apt -y install build-essential
```
locate : ファイル検索ツール
tcsh : csh の高機能版 shell
vim : nano より使いやすいエディタ
screen : コンソールのログを取ったり、キーボードだけでコピー、スクロールバックできる
nano : 頭がおかしくなりそうなエディタ
sharutils : uudecode, shar, unshar
manpages, manpages-dev manpages-ja manpages-ja-dev : オンラインマニュアル
syslog-ng : 商用 syslog-ng のコミュニティーエディション
nvi : vim みたいに高機能でない、普通の vi
htop : top のカラフル版
bind9-dnsutils : nslookup, dig など
net-tools : netstat や ifconfig など、老人向けコマンド
binutils : strings や ld, strip など
fdclone : MS-DOS 時代のファイルマネージャクローン
psmisc : fuser, killall, pstree, peekfd, prtstat など POSIX コマンド
build-essential : Debian パッケージを構築するツール一式。(gcc や make など)

　info 立ち上げるけど検索とかページの移動の仕方が解らず、開いたページをカーソルで移動するしかできない...
 どこかにチートシート的なのは落ちてないのかな。


# locate のデータベース更新 (作成)
```
updatedb
```

# sudo の設定
visudo で sudo できるユーザを追加
```config:visudo
user1yen  ALL=(ALL:ALL) ALL
```

# 初期設定ファイルをダウンロード
ログインシェルを tcsh へ、システムワイドなドットファイルを更新
```bash: まだ bash で実行
chsh -s /usr/bin/tcsh
chsh -s /usr/bin/tcsh user1yen
git clone https://github.com/jp-yen/dotfiles.git
install dotfiles/csh.cshrc /etc/csh.cshrc
install dotfiles/screenrc /etc/screenrc
install dotfiles/vimrc /etc/vim/vimrc

VIM_COLORS=/usr/share/vim/vim90/colors
( cd $VIM_COLORS && wget -N https://raw.githubusercontent.com/michalbachowski/vim-wombat256mod/master/colors/wombat256mod.vim )
( cd $VIM_COLORS && wget -N https://raw.githubusercontent.com/romainl/Apprentice/master/colors/apprentice.vim )
( cd $VIM_COLORS && wget -N https://raw.githubusercontent.com/karoliskoncevicius/moonshine-vim/master/colors/moonshine.vim )
( cd $VIM_COLORS && wget -N https://raw.githubusercontent.com/Haron-Prime/Antares/master/colors/antares.vim )
```

# IP アドレスをログイン画面に表示する
仮想マシンなどで、ssh でログインしたい場合などに有効

/etc/issue
```config:/etc/issue
Debian GNU/Linux 12 \n \l
IPv4: \4

```
というように `IPv4: \4` を追加するとログイン画面に IP アドレスが表示されて便利。

以下のように表示されます。
```shell:
Debian GNU/Linux 12 host tty1
IPv4: 192.168.0.254

host login:
```

# パフォーマンスモニタ
sysstat (sac) をインストール
```tcsh:
root@debian:~# apt -y install sysstat
```

## 情報の採取間隔を確認
 デフォルト設定は cron で10分毎、23:59 にローテーション
```
root@zabbix:~[45]# cat /etc/cron.d/sysstat
# The first element of the path is a directory where the debian-sa1
# script is located
PATH=/usr/lib/sysstat:/usr/sbin:/usr/sbin:/usr/bin:/sbin:/bin

# Activity reports every 10 minutes everyday
5-55/10 * * * * root command -v debian-sa1 > /dev/null && debian-sa1 1 1

# Additional run at 23:59 to rotate the statistics file
59 23 * * * root command -v debian-sa1 > /dev/null && debian-sa1 60 2
```

## 取得パラメータを指定
- 履歴を 200日分保存 (HISTORY=200)
- 取得できるデータを全部取得 (-S XALL)
- ファイル名を saYYYYMMDD (-D)
```
root@zabbix:~[47]# sed -i.orig -e '/^HISTORY=/{s/=[0-9]*$/=200/}' -e '/^SADC_OPTIONS=/{s/=.*$/="-D -S XALL"/}' /etc/sysstat/sysstat
```

## 自動起動を有効にします
```
root@debian:~# systemctl enable sysstat
Synchronizing state of sysstat.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable sysstat
Created symlink /etc/systemd/system/multi-user.target.wants/sysstat.service → /lib/systemd/system/sysstat.service.
Created symlink /etc/systemd/system/sysstat.service.wants/sysstat-collect.timer → /lib/systemd/system/sysstat-collect.timer.
Created symlink /etc/systemd/system/sysstat.service.wants/sysstat-summary.timer → /lib/systemd/system/sysstat-summary.timer.
```

## パフォーマンスモニタを起動
起動して状態を確認。
```
root@deb-test:~# service sysstat start
root@deb-test:~# service sysstat status
* sysstat.service - Resets System Activity Logs
     Loaded: loaded (/lib/systemd/system/sysstat.service; enabled; preset: enabled)
     Active: active (exited) since Sat 2025-05-03 18:45:54 JST; 13s ago
       Docs: man:sa1(8)
             man:sadc(8)
             man:sar(1)
    Process: 2427 ExecStart=/usr/lib/sysstat/sa1 --boot (code=exited, status=0/SUCCESS)
   Main PID: 2427 (code=exited, status=0/SUCCESS)
        CPU: 3ms

May 03 18:45:54 deb-test systemd[1]: Starting sysstat.service - Resets System Activity Logs...
May 03 18:45:54 deb-test systemd[1]: Finished sysstat.service - Resets System Activity Logs.
root@deb-test:~#
```


## sar コマンドの例
| コマンド | 意味 |
|:--|:--|
| sar -f /var/log/sysstat/sa02 | データをファイルから読み込む (他のオプションと組み合わせ可) |
| sar -B		| page in/out |
| sar -u		| CPUの負荷 |
| sar -P ALL	| CPUコア単位の負荷 |
| sar --human -r | メモリ |
| sar -q IO		| IO	|
| sar -q CPU	| CPU 使用率 |
| sar -q LOAD	| ロードアベレージ |
| sar -q MEM	| メモリ (セマフォ、フリー) |
| sar -q ALL	| -q の全て |
| sar -S		| swap 使用率 |
| sar -W		| page in / page out |
| sar -d		| disk io |
| sar -d --dev=sda5 | 物理ディスクと、仮想ディスクで重複して出てくるので、見たいディスクを指定すると良い |
| sar -F --fs=/dev/mapper/zabbix--vg-root | ディスク使用率 |
| sar -n DEV --iface=eth0  | 正常値 |
| sar -n EDEV --iface=eth0  | エラーカウント |

`sar -f /var/log/sysstat/sa20230303 -q LOAD` だと、2023-03-03 のロードアベレージを表示。ファイルを指定しない場合は今日のファイルを読み込む。また `sar -q LOAD 5 30` だと 5秒ごとに 30回、現在のロードアベレージを表示する。

# ネットワークアドレスの固定

インターフェース名の確認
```bash:
root@deb-test:~# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:d1:28:4c brd ff:ff:ff:ff:ff:ff
    altname enp11s0
```
インターフェース名が ens192 と言うことが分かりました。
これに固定 IP を指定します。

`/etc/network/interfaces` の ens192 の部分をコメントアウト。
ファイルを作成して固定 IP アドレスを記入。

```tcsh:
root@zabbix:~[230]# cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
# allow-hotplug ens192
# iface ens192 inet dhcp

root@zabbix:~[231]# cat > /etc/network/interfaces.d/ens192
# ens192 のアドレスを固定
auto ens192
iface ens192 inet static
# IP アドレス
address 192.168.0.30
network 192.168.0.0
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.254
# DNS
dns-nameservers 1.0.0.1 8.8.4.4
[Ctrl]+[D]
```
## セカンダリアドレスが必要な場合
インターフェース名に :1, :2 ... を付けて設定すれば良い。
```
auto ens192
iface ens192 inet dhcp

auto ens192:1
iface ens192:1 inet static
address 192.11.221.143
network 192.11.220.0
netmask 255.255.254.0
gateway 192.11.220.1
```


## サービスの再起動で設定が適用されることを確認

```
root@zabbix:~[232]# service networking restart
root@zabbix:~[233]# ip -4 a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    altname enp11s0
    inet 192.168.0.30/24 brd 192.168.0.255 scope global ens192
       valid_lft forever preferred_lft forever
```
`auto ens192` が無いと反映されません。指定しているのに auto とはこれ如何に？

## 再起動
せっかくなので shell の履歴を残すために手の込んだ方法を
```tcsh:
root@zabbix:~[235]# (sleep 5 ; shutdown -r now)& ; exit
```

# Proxmox で SPICE を使用する
1. SPICE Agent をインストールする
```
apt update
apt install spice-vdagent
```
2. 起動、有効化、状態の確認
```
systemctl start spice-vdagent
systemctl enable spice-vdagent
systemctl status spice-vdagent
```
3. サービスの登録、有効化
```
mkdir -p /etc/systemd/system/spice-vdagent.service.d/
cat <<___EOF___> /etc/systemd/system/spice-vdagent.service.d/override.conf
[Service]
ExecStart=
ExecStart=/usr/sbin/spice-vdagentd
___EOF___
systemctl daemon-reload
systemctl enable spice-vdagent
```
4. 再起動


# putty で 256色を使うとき
- puttyでの設定
--  [ウインドウ] -> [色]を選択し、「xterm 256色モードを使うことを許可する」にチェックを入れる
-- [接続] -> [データ]を選択し、「端末タイプを表す文字列」に「xterm-256color」を入力する
- Debian での設定
それっぽい表示にはなるけども少しおかしいので


# tips Windows からホスト名でアクセスしたいとき
```tcsh:
apt install -y avahi-daemon
```
してください。mDNS (multicast DNS / Rendezvous / Bonjour などといわれるもの)  で名前解決ができます。
ただし、ローカルドメインで .local を使っていた場合は動作を停止しますので注意。

動作すると、以下のようなコマンドで自分に ping が打てますし、セグメント内の Windows からもホスト名でアクセスできます。
```tcsh:
ping `uname -n`.local
```

そもそも WSL2 なら、avahi を使わなくても /etc/wsl.conf に
```config:/etc/wsl.conf
[network]
hostname = fedoraremix
```
というような設定をしておけばいけます。

# tips WinSCP で繋ぐとき
- ロケール ja_JP.UTF-8
- シェル tcsh

と言う環境で WinSCP (scp) で繋ぐと、エラーが出て上手く操作できません。(エラーを無視してファイルを送るだけなら可能)
そんなときは
1. UTF-8 エンコードを「オン」
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306041/b56cbd95-4a78-7dc4-0a6c-bd424f9e850b.png)
2.シェルを「bash」
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306041/042dadd4-c48a-0eab-b362-3bb64550074a.png)
にするとエラーが出なくなりました。

できれば sftp で繋ぐとエラーが少ないと思います。(先ず試すべきはこっち。fortune とか無駄な物が動きません。)

# enlightenment のインストール

https://www.enlightenment.org/

```
apt install -y enlightenment xinit fonts-ipafont glew-utils
```
glew-utils : OpenGL ライブラリ

# Nextcloud のインストール

https://nextcloud.com/

```tcsh:root ユーザで以下のコマンドを実施
apt install snapd
snap install core
snap install nextcloud
```
あらまぁ不思議、80番ポートで Nextcloud があがってるじゃぁないですか。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306041/0ab6c000-b714-ef27-812b-59da13ff4692.png)
あとは煮るなり焼くなり、ご自由に。


# ディスクの追加
/dev/sdb pv にを追加します
```
root@docker:~[286]# pvcreate /dev/sdb
  Physical volume "/dev/sdb" successfully created.
root@docker:~[287]# pvs
  PV         VG        Fmt  Attr PSize   PFree
  /dev/sda3  debian-vg lvm2 a--  <39.02g     0
  /dev/sdb             lvm2 ---   40.00g 40.00g
```

VG に追加します
```
root@docker:~[310]# vgextend debian-vg /dev/sdb
  Volume group "debian-vg" successfully extended

root@docker:~[312]# pvs
  PV         VG        Fmt  Attr PSize   PFree
  /dev/sda3  debian-vg lvm2 a--  <39.02g      0
  /dev/sdb   debian-vg lvm2 a--  <40.00g <40.00g

root@docker:~[313]# vgdisplay
  --- Volume group ---
  VG Name               debian-vg
  System ID
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  6
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               <79.02 GiB
  PE Size               4.00 MiB
  Total PE              20228
  Alloc PE / Size       9989 / <39.02 GiB
  Free  PE / Size       10239 / <40.00 GiB      👈 Free に追加
  VG UUID               bKp02X-27hG-fELY-Lph9-ObHX-Qo5N-JUSFhL
```
領域を割り当て
```
root@docker:~[314]# lvextend -l+100%FREE /dev/debian-vg/root
  Size of logical volume debian-vg/root changed from <39.02 GiB (9989 extents) to <79.02 GiB (20228 extents).
  Logical volume debian-vg/root successfully resized.
root@docker:~[315]# vgdisplay
  --- Volume group ---
  VG Name               debian-vg
  System ID
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  7
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               <79.02 GiB
  PE Size               4.00 MiB
  Total PE              20228
  Alloc PE / Size       20228 / <79.02 GiB      👈 全て割り当てられた
  Free  PE / Size       0 / 0
  VG UUID               bKp02X-27hG-fELY-Lph9-ObHX-Qo5N-JUSFhL
```

あとは wasp 領域を追加するのと同じ
```
root@docker:~[316]# btrfs filesystem usage /
Overall:
    Device size:                  39.02GiB
    Device allocated:             39.02GiB
    Device unallocated:            1.00MiB
    Device missing:                  0.00B
    Device slack:                 40.00GiB
    Used:                         37.53GiB
    Free (estimated):            195.46MiB      (min: 195.46MiB)
    Free (statfs, df):           195.46MiB
    Data ratio:                       1.00
    Metadata ratio:                   2.00
    Global reserve:               48.36MiB      (used: 0.00B)
    Multiple profiles:                  no

Data,single: Size:37.46GiB, Used:37.26GiB (99.49%)
   /dev/mapper/debian--vg-root    37.46GiB

Metadata,DUP: Size:768.00MiB, Used:135.50MiB (17.64%)
   /dev/mapper/debian--vg-root     1.50GiB

System,DUP: Size:32.00MiB, Used:16.00KiB (0.05%)
   /dev/mapper/debian--vg-root    64.00MiB

Unallocated:
   /dev/mapper/debian--vg-root     1.00MiB
root@docker:~[317]# btrfs filesystem resize max /
Resize device id 1 (/dev/mapper/debian--vg-root) from 39.02GiB to max
root@docker:~[318]# btrfs filesystem usage /

Overall:
    Device size:                  79.02GiB
    Device allocated:             39.02GiB
    Device unallocated:           40.00GiB
    Device missing:                  0.00B
    Device slack:                    0.00B
    Used:                         37.53GiB
    Free (estimated):             40.19GiB      (min: 20.19GiB)
    Free (statfs, df):            40.19GiB
    Data ratio:                       1.00
    Metadata ratio:                   2.00
    Global reserve:               48.36MiB      (used: 0.00B)
    Multiple profiles:                  no

Data,single: Size:37.46GiB, Used:37.26GiB (99.49%)
   /dev/mapper/debian--vg-root    37.46GiB

Metadata,DUP: Size:768.00MiB, Used:135.50MiB (17.64%)
   /dev/mapper/debian--vg-root     1.50GiB

System,DUP: Size:32.00MiB, Used:16.00KiB (0.05%)
   /dev/mapper/debian--vg-root    64.00MiB

Unallocated:
   /dev/mapper/debian--vg-root    40.00GiB
```

# 論理ボリュームマネージャについて (LVM)
詳細は [lvm2](https://sourceware.org/lvm2/) を参照

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306041/078f8c92-d804-220f-2243-a7767d97c31c.png)

物理ディスクと、パーティションはボリュームマネージャの範囲外。

[論理ボリュームマネージャーの管理](https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/7/html-single/logical_volume_manager_administration/index)

## PV (physical volume / 物理ボリューム)
PV は物理パーティションと同じ領域を指す。名前も /dev/sda など、物理ディスクと同じ名前を使う。
管理を LVM の監視下に入れるための宣言のようなもの。

`pvcreate <パーティション>` HDD / SSD のパーティションをボリュームマネージャの管理下に入れる
`pvremove <パーティション>` パーティションの pv を削除

`pvs` : pv の一覧を表示
`pvdisplay` : pv の詳細を表示
`pcscan` : 接続されているディスクから pv を探す

## VG (volume group / ボリュームグループ)
VG は PV を束ねて名前を付けたもの。

`VG PATH : /dev/<VG名>`

`vgcrate <vg名> <pv> [<pv> [<pv> ...]]` : vg を作成、一つの vg に複数の pv を纏める
※pv は 1つでも可

`vgremove <vg名>` : vg を削除
`vgextend <vg名> <pv> [<pv> [<pv> ...]]` : vg に pv を追加
`vgreduce <vg名> <pv> [<pv> [<pv> ...]]` : vg に pv を削除

`vgs` : vg の一覧を表示
`vgdisplay` : vg の詳細を表示

`vgrename <元VG名> <新VG名>` vg 名の変更

## LV (logical volume / 論理ボリューム)
LV は VG から領域を切り出したもの。LV を ext4 等でフォーマットして利用する。
RAID 的なものも この層で行う。

`lv path : /dev/<vg名>/<lv名>`

`lvcreate [-L <容量>] <vg名>` : <vg名> から指定容量を LV を切り出す
`lvremove <lv path>` : lv を削除

`lvextend ` : lv の拡張
`lvreduce ` : lv の縮小

`lvs` : lv の一覧を表示
`lvdisplay` : lv の詳細を表示

`lvrename <元LV名> <新LV名>` : LV名の変更

[論理ボリューム管理の概要](https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/8/html/configuring_and_managing_logical_volumes/overview-of-logical-volume-management_configuring-and-managing-logical-volumes) Red Hat
[LVMの設定](http://www.novell.com/ja-jp/documentation/sles11/stor_admin/data/lvm.html) novell

## フォーマット、マウント
論理ボリュームをフォーマットし、マウントすることで使えるようになります。
mkfs.bfs /dev/<vg名>/<lv名>

# sources.list の例
全てのパッケージを CD/DVD から入れた場合、sources.list が cdrom を差して更新ができないので、以下のような感じのファイルを作成する。
```conf:/etc/apt/sources.list
# deb cdrom:[Debian GNU/Linux 12.5.0 _Bookworm_ - Official amd64 BD Binary-1 with firmware 20240210-11:28]/ bookworm contrib main non-free-firmware

deb http://security.debian.org/debian-security bookworm-security main non-free-firmware contrib non-free
deb-src http://security.debian.org/debian-security bookworm-security main non-free-firmware contrib non-free

# bookworm-updates, to get updates before a point release is made;
# see https://www.debian.org/doc/manuals/debian-reference/ch02.en.html#_updates_and_backports
deb http://ftp.riken.jp/Linux/debian/debian/ bookworm-backports main contrib non-free non-free-firmware non-free
deb-src http://ftp.riken.jp/Linux/debian/debian/ bookworm-backports main contrib non-free non-free-firmware non-free

deb http://ftp.riken.jp/Linux/debian/debian/ bookworm-proposed-updates contrib main non-free non-free-firmware
deb-src http://ftp.riken.jp/Linux/debian/debian/ bookworm-proposed-updates contrib main non-free non-free-firmware

deb http://ftp.riken.jp/Linux/debian/debian/ bookworm main non-free-firmware contrib non-free
deb-src http://ftp.riken.jp/Linux/debian/debian/ bookworm main non-free-firmware contrib non-free

deb http://ftp.riken.jp/Linux/debian/debian/ bookworm-updates main non-free-firmware contrib non-free
deb-src http://ftp.riken.jp/Linux/debian/debian/ bookworm-updates main non-free-firmware contrib non-free
```
ミラーサイト http://ftp.jaist.ac.jp/debian/ は遅いので使わない方が良い

## proxy の設定

```
# cat /etc/apt/apt.conf.d/00proxy.conf
Acquire::http::Proxy "http://192.168.0.251:3128";
Acquire::https::Proxy "http://192.168.0.251:3128";
Acquire::ftp::Proxy "http://192.168.0.251:3128";
```