3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Debian 12 のインストール

Last updated at Posted at 2023-07-02

個人用のメモ

インストールの方針

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

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

swap を目的の容量にする

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

ダウンロード

Debian プロジェクト からダウンロードします。
国内であれば理研などにミラーサイトがあります。

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

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

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

ISO イメージを USB メモリに書き込みます

Rufus で書き込めます。

インストーラから起動、インストール開始

(略)

インストーラでの操作

ディスクのパーティショニング

  • パーティショニングの方法
     ガイド - ディスク全体を使い 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

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

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

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

パッケージのインストールが終わってから

  • 別のインストールメディアを検査しますか?
     いいえ

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

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

再起動

swap をなくす場合 (kubanetics などで swap を切る必要がある場合)

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

vi /etc/fstab で swap の行を削除し再起動

再起動の代わりに swapoff -a でも可能。

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

swap をマウントしていないことを確認

root@debian:~# free
               total        used        free      shared  buff/cache   available
Mem:        16375068      416500    16071524         728      111904    15958568
Swap:              0           0           0
root@debian:~#

swap 領域の容量と名前を確認

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

削除を実行

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 が削除されたことを確認

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 の論理ボリュームへ追加

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)

ファイルシステムのサイズが増えていないのでこちらも拡張する

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)

ファイルシステムのサイズが増えていないのでこちらも拡張する

事前
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 ➋
btrfs の拡張
root@debian:~# btrfs filesystem resize max /
Resize device id 1 (/dev/mapper/debian--vg-root) from 38.06GiB to max
事後
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 でできるけどリンクを張るだけなので、余り使う必要はないかも。

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

パッケージの更新

apt update
apt full-upgrade
apt autoremove
apt purge

パッケージの追加

apt -y install git locate tcsh vim screen sudo
apt -y remove nano
apt -y install sharutils gcc make manpages manpages-dev manpages-ja manpages-ja-dev syslog-ng zip bind9-dnsutils nvi htop net-tools binutils fdclone

locate : ファイル検索ツール
tcsh : csh の高機能版 shell
vim : nano より使いやすいエディタ
screen : コンソールのログを取ったり、キーボードだけでコピー、スクロールバックできる
nano : 頭がおかしくなりそうなエディタ
sharutils : uudecode, shar, unshar
gcc : GNU Cコンパイラ
make : 条件に従ってコマンドを実行させるツール
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 時代のファイルマネージャクローン

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

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

updatedb

sudo の設定

visudo で sudo できるユーザを追加

visudo
user1yen  ALL=(ALL:ALL) ALL

初期設定ファイルをダウンロード

ログインシェルを tcsh へ、システムワイドなドットファイルを更新

まだ 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/issues

/etc/issues
Debian GNU/Linux 12 \n \l
IPv4: \4

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

以下のように表示されます。

Debian GNU/Linux 12 host tty1
IPv4: 192.168.0.254

host login:

パフォーマンスモニタ

sysstat (sac) をインストール

root@debian:~# apt -y install 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.

enable になったか確認

root@debian:~# service sysstat status
○ sysstat.service - Resets System Activity Logs
     Loaded: loaded (/lib/systemd/system/sysstat.service; enabled; preset: enabled)
     Active: inactive (dead)
       Docs: man:sa1(8)
             man:sadc(8)
             man:sar(1)

情報の採取間隔を確認

デフォルト設定は 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@zabbix:~[48]# service sysstat restart
root@zabbix:~[49]# service sysstat status
● sysstat.service - Resets System Activity Logs
     Loaded: loaded (/lib/systemd/system/sysstat.service; enabled; preset: enabled)
     Active: active (exited) since Sun 2023-07-02 16:36:54 JST; 6s ago
       Docs: man:sa1(8)
             man:sadc(8)
             man:sar(1)
    Process: 4820 ExecStart=/usr/lib/sysstat/sa1 --boot (code=exited, status=0/SUCCESS)
   Main PID: 4820 (code=exited, status=0/SUCCESS)
        CPU: 3ms

 7月 02 16:36:54 zabbix systemd[1]: Starting sysstat.service - Resets System Activity Logs...
 7月 02 16:36:54 zabbix systemd[1]: Finished sysstat.service - Resets System Activity Logs.

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回、現在のロードアベレージを表示する。

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

インターフェース名の確認

root@zabbix:~[229]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:ee:e8:d1 brd ff:ff:ff:ff:ff:ff
    altname enp11s0
    inet 192.168.0.101/24 brd 192.168.0.255 scope global dynamic noprefixroute ens192
       valid_lft 1817sec preferred_lft 1817sec
    inet6 fe80::20c:29ff:feee:e8d1/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

インターフェース名が ens192 と言うことが分かりました。
これに固定 IP を指定します。

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

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 の履歴を残すために手の込んだ方法を

root@zabbix:~[235]# (sleep 5 ; shutdown -r now)& ; exit

putty で 256色を使うとき

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

tips Windows からホスト名でアクセスしたいとき

apt install -y avahi-daemon

してください。mDNS (multicast DNS / Rendezvous / Bonjour などといわれるもの) で名前解決ができます。
ただし、ローカルドメインで .local を使っていた場合は動作を停止しますので注意。

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

ping `uname -n`.local

そもそも WSL2 なら、avahi を使わなくても /etc/wsl.conf に

/etc/wsl.conf
[network]
hostname = fedoraremix

というような設定をしておけばいけます。

tips WinSCP で繋ぐとき

  • ロケール ja_JP.UTF-8
  • シェル tcsh

と言う環境で WinSCP (scp) で繋ぐと、エラーが出て上手く操作できません。(エラーを無視してファイルを送るだけなら可能)
そんなときは

  1. UTF-8 エンコードを「オン」
    image.png
    2.シェルを「bash」
    image.png
    にするとエラーが出なくなりました。

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

Nextcloud のインストール

root ユーザで以下のコマンドを実施
apt install snapd
snap install core
snap install nextcloud

あらまぁ不思議、80番ポートで Nextcloud があがってるじゃぁないですか。
image.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 を参照

image.png

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

論理ボリュームマネージャーの管理

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名> : から指定容量を LV を切り出す
lvremove <lv path> : lv を削除

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

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

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

論理ボリューム管理の概要 Red Hat
LVMの設定 novell

フォーマット、マウント

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

sources.list の例

全てのパッケージを CD/DVD から入れた場合、sources.list が cdrom を差して更新ができないので、以下のような感じのファイルを作成する。

/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
3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?