📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
| (同じ利用者による、間の9版が非表示) | |||
| 4行目: | 4行目: | ||
<br><br> | <br><br> | ||
== | == ディスクイメージファイルの拡張 == | ||
Linux OSのディスクイメージファイルをマウントして使用する場合、ディスクイメージファイルの空き領域が不足する時がある。<br> | |||
ここでは、ディスクイメージファイルのサイズを変更する手順について記載する。<br> | |||
<br> | |||
==== 方法 1 : 非対話式 (推奨) ==== | |||
まず、ディスクイメージファイルを確認する。<br> | |||
<br> | |||
sudo fdisk -lu <ディスクイメージファイル>.img | |||
# 出力例 | |||
ディスク 2023-10-10-raspios-bookworm-arm64-lite.img: 2.54 GiB, 2722103296 バイト, 5316608 セクタ | |||
単位: セクタ (1 * 512 = 512 バイト) | |||
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト | |||
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト | |||
ディスクラベルのタイプ: dos | |||
ディスク識別子: 0x7788c428 | |||
デバイス 起動 開始位置 終了位置 セクタ サイズ Id タイプ | |||
2023-10-10-raspios-bookworm-arm64-lite.img1 8192 1056767 1048576 512M c W95 FAT32 (LBA) | |||
2023-10-10-raspios-bookworm-arm64-lite.img2 1056768 5316607 4259840 2G 83 Linux | |||
<br> | |||
<code>dd</code> コマンドを使用して、空き領域を追加する。<br> | |||
上記の例では、最初のパーティションはブートパーティション(カーネルとバイナリブロブ)、2番目のパーティションはファイルシステムである。<br> | |||
ディスクイメージファイルに空の空き領域を追加して、2番目のパーティションを拡張する。<br> | |||
<br> | |||
sudo dd if=/dev/zero bs=1M count=3072 >> <元のディスクイメージファイル>.img # この例では、3[GB]を追加している | |||
<br> | |||
空き領域を追加したディスクイメージファイルの情報を表示する。<br> | |||
この時、出力結果は空き領域が追加されたサイズ(以下の例では、5.54[GiB])と表示するが、ディスクイメージファイルの2番目のパーティションのサイズはまだ変更されていない。(以下の例では、2[G])<br> | |||
<br> | |||
sudo fdisk -lu <元のディスクイメージファイル>.img | |||
# 出力例 | |||
ディスク 2023-10-10-raspios-bookworm-arm64-lite.img: 5.54 GiB, 5943328768 バイト, 11608064 セクタ | |||
単位: セクタ (1 * 512 = 512 バイト) | |||
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト | |||
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト | |||
ディスクラベルのタイプ: dos | |||
ディスク識別子: 0x7788c428 | |||
デバイス 起動 開始位置 終了位置 セクタ サイズ Id タイプ | |||
2023-10-10-raspios-bookworm-arm64-lite.img1 8192 1056767 1048576 512M c W95 FAT32 (LBA) | |||
2023-10-10-raspios-bookworm-arm64-lite.img2 1056768 5316607 4259840 2G 83 Linux | |||
<br> | |||
これを解決するため、ディスクイメージファイルの空の追加領域の部分を埋めるようにパーティションのサイズを変更する必要がある。<br> | |||
まず、ループバックデバイスを作成する。<br> | |||
<br> | |||
sudo losetup -f -P --show <元のディスクイメージファイル>.img | |||
# 出力例 | |||
/dev/loop0 | |||
<br> | |||
これにより、/dev/loop<span style="color:#C00000">X</span>がディスクイメージファイル全体、/dev/loop<span style="color:#C00000">X</span>p2がサイズ拡張するパーティションとして設定される。<br> | |||
他のループバックデバイスを選択する場合は、未使用のループバックデバイスのドライブを割り当てる。<br> | |||
<br> | |||
sudo fdisk -lu /dev/loop<span style="color:#C00000">X</span> # X : ループバックデバイス番号 | |||
# 実行例 | |||
sudo fdisk -lu /dev/loop0 | |||
# 出力例 | |||
ディスク /dev/loop0: 5.54 GiB, 5943328768 バイト, 11608064 セクタ | |||
単位: セクタ (1 * 512 = 512 バイト) | |||
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト | |||
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト | |||
ディスクラベルのタイプ: dos | |||
ディスク識別子: 0x7788c428 | |||
デバイス 起動 開始位置 終了位置 セクタ サイズ Id タイプ | |||
/dev/loop0p1 8192 1056767 1048576 512M c W95 FAT32 (LBA) | |||
/dev/loop0p2 1056768 5316607 4259840 2G 83 Linux | |||
<br> | |||
上記の出力例では、/dev/loop0p1はブートパーティション、/dev/loop0p2はルートパーティションである。<br> | |||
<br> | |||
次に、<code>parted</code> コマンドを非対話モードで実行して、2番目のパーティションのサイズを変更する。<br> | |||
<code>100%</code> を指定すると、ディスクの残り全領域を使用してパーティションを拡張する。<br> | |||
<br> | |||
sudo parted -s /dev/loop<span style="color:#C00000">X</span> resizepart <パーティション番号> 100% | |||
# 実行例 | |||
sudo parted -s /dev/loop0 resizepart 2 100% | |||
<br> | |||
なお、上記のコマンドで警告が表示されて失敗する場合は、<code>---pretend-input-tty</code> オプションを使用する。<br> | |||
<br> | |||
sudo parted ---pretend-input-tty /dev/loop<span style="color:#C00000">X</span> resizepart <パーティション番号> yes 100% | |||
# 実行例 | |||
sudo parted ---pretend-input-tty /dev/loop0 resizepart 2 yes 100% | |||
<br> | |||
正常に拡張されているかどうかを確認する。<br> | |||
<br> | |||
sudo parted -s /dev/loop<span style="color:#C00000">X</span> print | |||
# 出力例 | |||
モデル: Loopback デバイス (loopback) | |||
ディスク /dev/loop0: 5943MB | |||
セクタサイズ (論理/物理): 512B/512B | |||
パーティションテーブル: msdos | |||
ディスクフラグ: | |||
番号 開始 終了 サイズ タイプ ファイルシステム フラグ | |||
1 4194kB 541MB 537MB primary fat32 lba, type=0c | |||
2 541MB 5943MB 5402MB primary ext4 type=83 | |||
<br> | |||
<code>e2fsck</code> コマンドを実行して、拡張したディスクイメージファイルのファイルシステムを確認する。<br> | |||
<br> | |||
sudo e2fsck -f /dev/loop<span style="color:#C00000">X</span>p<span style="color:#C00000">Y</span> # Xはデバイス番号, Yは拡張したパーティション番号 | |||
<br> | |||
<code>resize2fs</code> コマンドで拡張したディスクイメージファイルのファイルシステムを拡張する。<br> | |||
<u>※パーティションのサイズは既に変更しているので、ここではファイルシステムをリサイズ(拡張)する。</u><br> | |||
<br> | |||
sudo resize2fs /dev/loop<span style="color:#C00000">X</span>p<span style="color:#C00000">Y</span> # Xはデバイス番号, Yは拡張したパーティション番号 | |||
<br> | |||
最後に、ループバックデバイスを削除する。<br> | |||
<br> | |||
sudo losetup -d /dev/loop<span style="color:#C00000">X</span> | |||
<br> | |||
<br> | |||
==== 方法 2 : 対話式 ==== | |||
まず、ディスクイメージファイルを確認する。<br> | |||
sudo fdisk -lu <ディスクイメージファイル>.img | |||
# 出力例 | |||
ディスク 2023-10-10-raspios-bookworm-arm64-lite.img: 2.54 GiB, 2722103296 バイト, 5316608 セクタ | |||
単位: セクタ (1 * 512 = 512 バイト) | |||
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト | |||
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト | |||
ディスクラベルのタイプ: dos | |||
ディスク識別子: 0x7788c428 | |||
デバイス 起動 開始位置 終了位置 セクタ サイズ Id タイプ | |||
2023-10-10-raspios-bookworm-arm64-lite.img1 8192 1056767 1048576 512M c W95 FAT32 (LBA) | |||
2023-10-10-raspios-bookworm-arm64-lite.img2 1056768 5316607 4259840 2G 83 Linux | |||
<br> | |||
<code>dd</code>コマンドを使用して、空き領域を追加する。<br> | |||
上記の例では、最初のパーティションはブートパーティション(カーネルとバイナリブロブ)、2番目のパーティションはファイルシステムである。<br> | |||
ディスクイメージファイルに空の空き領域を追加して、2番目のパーティションを拡張する。<br> | |||
sudo dd if=/dev/zero bs=1M count=3072 >> <元のディスクイメージファイル>.img # この例では、3[GB]を追加している | |||
<br> | |||
空き領域を追加したディスクイメージファイルの情報を表示する。<br> | |||
この時、出力結果は空き領域が追加されたサイズ(以下の例では、5.54[GiB])と表示するが、ディスクイメージファイルの2番目のパーティションのサイズはまだ変更されていない。(以下の例では、2[G])<br> | |||
sudo fdisk -lu <元のディスクイメージファイル>.img | |||
# 出力例 | |||
ディスク 2023-10-10-raspios-bookworm-arm64-lite.img: 5.54 GiB, 5943328768 バイト, 11608064 セクタ | |||
単位: セクタ (1 * 512 = 512 バイト) | |||
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト | |||
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト | |||
ディスクラベルのタイプ: dos | |||
ディスク識別子: 0x7788c428 | |||
デバイス 起動 開始位置 終了位置 セクタ サイズ Id タイプ | |||
2023-10-10-raspios-bookworm-arm64-lite.img1 8192 1056767 1048576 512M c W95 FAT32 (LBA) | |||
2023-10-10-raspios-bookworm-arm64-lite.img2 1056768 5316607 4259840 2G 83 Linux | |||
<br> | |||
これを解決するため、ディスクイメージファイルの空の追加領域の部分を埋めるようにパーティションのサイズを変更する必要がある。<br> | |||
まず、ループバックデバイスを作成する。<br> | |||
sudo losetup -f -P --show <元のディスクイメージファイル>.img | |||
# 出力例 | |||
/dev/loop0 | |||
<br> | |||
これにより、/dev/loop<span style="color:#C00000">X</span>がディスクイメージファイル全体、/dev/loop<span style="color:#C00000">X</span>p2がサイズ拡張するパーティションとして設定される。<br> | |||
他のループバックデバイスを選択する場合は、未使用のループバックデバイスのドライブを割り当てる。<br> | |||
sudo fdisk -lu /dev/loop<span style="color:#C00000">X</span> # X : ループバックデバイス番号 | |||
# 実行例 | |||
sudo fdisk -lu /dev/loop0 | |||
# 出力例 | |||
ディスク /dev/loop0: 5.54 GiB, 5943328768 バイト, 11608064 セクタ | |||
単位: セクタ (1 * 512 = 512 バイト) | |||
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト | |||
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト | |||
ディスクラベルのタイプ: dos | |||
ディスク識別子: 0x7788c428 | |||
デバイス 起動 開始位置 終了位置 セクタ サイズ Id タイプ | |||
/dev/loop0p1 8192 1056767 1048576 512M c W95 FAT32 (LBA) | |||
/dev/loop0p2 1056768 5316607 4259840 2G 83 Linux | |||
<br> | |||
上記の出力例では、/dev/loop0p1はブートパーティション、/dev/loop0p2はルートパーティションである。<br> | |||
<br> | |||
次に、<code>parted</code>を実行して、パーティションのサイズを変更する。<br> | |||
2番目のパーティションのサイズを、<code>parted</code>コマンドのヘッダ出力の<u>Disk</u>または<u>ディスク</u>で始まる行で指定された/dev/loop<span style="color:#C00000">X</span>のフルサイズに変更する。<br> | |||
以下の例では、<u>ディスク</u>は5943[MB]である。<br> | |||
sudo parted /dev/loop<span style="color:#C00000">X</span> | |||
<br> | |||
(parted) print | |||
# 出力例 | |||
モデル: Loopback デバイス (loopback) | |||
ディスク /dev/loop0: 5943MB | |||
セクタサイズ (論理/物理): 512B/512B | |||
パーティションテーブル: msdos | |||
ディスクフラグ: | |||
番号 開始 終了 サイズ タイプ ファイルシステム フラグ | |||
1 4194kB 541MB 537MB primary fat32 lba, type=0c | |||
2 541MB 2722MB 2181MB primary ext4 type=83 | |||
<br> | |||
2番目のパーティションサイズを変更する。<br> | |||
以下の例では、2番目のパーティション(ルートパーティション)をフルサイズに変更している。<br> | |||
(parted) resizepart <パーティション番号> <拡張するサイズ> | |||
または | |||
(parted) resizepart <パーティション番号> <拡張するサイズの割合> | |||
# 実行例 | |||
(parted) resizepart 2 5943MB | |||
または | |||
(parted) resizepart 2 100% | |||
<br> | |||
正常に拡張されているかどうかを確認する。<br> | |||
(parted) print | |||
# 出力例 | |||
モデル: Loopback デバイス (loopback) | |||
ディスク /dev/loop0: 5943MB | |||
セクタサイズ (論理/物理): 512B/512B | |||
パーティションテーブル: msdos | |||
ディスクフラグ: | |||
番号 開始 終了 サイズ タイプ ファイルシステム フラグ | |||
1 4194kB 541MB 537MB primary fat32 lba, type=0c | |||
2 541MB 5943MB 5402MB primary ext4 type=83 | |||
<br> | |||
<code>e2fsck</code>コマンドを実行して、拡張したディスクイメージファイルのファイルシステムを確認する。<br> | |||
sudo e2fsck -f /dev/loop<span style="color:#C00000">X</span>p<span style="color:#C00000">Y</span> # Xはデバイス番号, Yは拡張したパーティション番号 | |||
<br> | |||
<code>resize2fs</code>で拡張したディスクイメージファイルのファイルシステムを拡張する。<br> | |||
<u>※パーティションのサイズは既に変更しているので、ここではファイルシステムをリサイズ(拡張)する。</u><br> | |||
sudo resize2fs /dev/loop<span style="color:#C00000">X</span>p<span style="color:#C00000">Y</span> # Xはデバイス番号, Yは拡張したパーティション番号 | |||
<br> | |||
ディスクイメージファイルが正常に拡張されているかどうかを確認する。<br> | |||
sudo parted /dev/loop<span style="color:#C00000">X</span> | |||
(parted) print | |||
# 出力例 (正常に拡張されている場合) | |||
モデル: Loopback デバイス (loopback) | |||
ディスク /dev/loop0: 5943MB | |||
セクタサイズ (論理/物理): 512B/512B | |||
パーティションテーブル: msdos | |||
ディスクフラグ: | |||
番号 開始 終了 サイズ タイプ ファイルシステム フラグ | |||
1 4194kB 541MB 537MB primary fat32 lba, type=0c | |||
2 541MB 5943MB 5402MB primary ext4 type=83 | |||
<br> | |||
最後に、ループバックデバイスを削除する。<br> | |||
sudo losetup -d /dev/loop<span style="color:#C00000">X</span> | |||
<br> | |||
==== 方法 3 ==== | |||
まず、空のイメージファイルを作成する。<br> | まず、空のイメージファイルを作成する。<br> | ||
以下の例では、拡張するサイズを5[GiB]としている。<br> | 以下の例では、拡張するサイズを5[GiB]としている。<br> | ||
| 133行目: | 386行目: | ||
<br><br> | <br><br> | ||
== SDカードのパーティションの拡張 == | |||
SDカードの場合は、SDカードをPCに挿入してパーティションのサイズを変更する。<br> | |||
イメージファイルをフラッシュした後にパーティションのサイズを変更する。<br> | |||
<br> | |||
パーティションのサイズを拡張するには、以下に示す2つの方法がある。<br> | |||
<br> | |||
* Growpartの使用 | |||
*# GrowPartをインストールする。 | |||
*#: <code>sudo zypper install growpart</code> | |||
*# GrowPartを実行して、パーティションのサイズを設定する。 | |||
*#: <code>sudo growpart /dev/mmcblk<span style="color:#C00000">X</span> <span style="color:#00A000">Y</span></code> # Xはストレージデバイス番号, Yはパーティション番号 | |||
*# パーティションのサイズを変更する。 | |||
*#: <code>sudo resize2fs /dev/mmcblk<span style="color:#C00000">X</span>p<span style="color:#00A000">Y</span></code> # Xはストレージデバイス番号, Yはパーティション番号 | |||
*: <br> | |||
* Partedの使用 (推奨) | |||
*# PCにSDカードを挿入する。 | |||
*# Partedを実行して、パーティションのサイズを設定する。 | |||
*#: <code>sudo parted /dev/sd<span style="color:#C00000">X</span></code> # Xはストレージデバイス番号 | |||
*#: <code>(parted) resizepart 2 100%</code> | |||
*#: <code>(parted) quit</code> | |||
*# パーティションのサイズを変更する。 | |||
*#: <code>sudo resize2fs /dev/sd<span style="color:#C00000">X</span><span style="color:#00A000">Y</span></code> # Xはストレージデバイス番号, Yはパーティション番号 | |||
<br> | |||
<u>※注意 1</u><br> | |||
<u>実機の内部からパーティションのサイズを変更することは禁止である。</u><br> | |||
<u>現在マウントされているパーティションのサイズを変更すると、奇妙な結果になることがある。</u><br> | |||
<br> | |||
<u>※注意 2 : PinePhone Beta/ProのeMMCの拡張</u><br> | |||
<u>PinePhone Beta/ProのeMMCを拡張する場合、Jumpdriveを使用して、PCとUSBケーブルで接続してeMMCに直接アクセスする。</u><br> | |||
<u>その後、eMMCのパーティションのサイズを変更する。</u><br> | |||
<br><br> | |||
== qcow2ファイルのサイズの拡張 == | |||
KVMで作成した仮想マシンのディスクファイル(qcow2ファイル)を拡張する。<br> | |||
なお、仮想マシンのセットアップが完了していることが前提となる。<br> | |||
<br> | |||
仮想マシンのディスクファイルのリサイズは、<code>virsh</code>コマンドを使用する。<br> | |||
sudo virsh vol-resize <仮想マシン名 または 仮想マシンのパス> <ファイルサイズ> [--pool <プール名 または UUID>] [--allocate] [--delta] [--shrink] | |||
<br> | |||
ファイルサイズは、<code>50GB</code>、<code>50000MB</code>、または、<code>50GiB</code>、<code>5120MiB</code>等と記述する。<br> | |||
<br> | |||
<code>--allocate</code>オプションは、rawファイルにのみ対応しており、qcow2ファイルに対して指定するとエラーになるので注意する。 (基本的には使用しない)<br> | |||
<br> | |||
<code>--delta</code>オプションを付加しない場合、<ファイルサイズ>には変更後のサイズを指定する。<br> | |||
<code>--delta</code>オプションを付加する場合、代わりにサイズ拡張 / 縮小の差分の値を指定する。<br> | |||
<br> | |||
<code>--shrink</code>オプションを付加する場合、サイズを縮小する際に指定する。<br> | |||
拡張の際に指定するとエラーとなることに注意する。<br> | |||
<br> | |||
==== 拡張手順 ==== | |||
まず、プール名を確認する。<br> | |||
sudo virsh pool-list | |||
# 出力例 | |||
# Name State Autostart | |||
# ---------------------------------------------- | |||
# default active yes | |||
<br> | |||
プール名にある仮想マシン名を確認する。<br> | |||
sudo virsh vol-list --pool <プール名> | |||
# 出力例 | |||
# 名前 パス | |||
# ----------------------------------------------------- | |||
# RHEL_9 /run/media/suse/SAMSUNG860EVO/KVM/RHEL_9 | |||
<br> | |||
現在のボリュームサイズを確認する。<br> | |||
sudo virsh vol-info --pool <プール名> <仮想マシン名 または 仮想マシンのファイルのパス> | |||
# 出力例 | |||
名前: RHEL_9.qcow2 | |||
タイプ: ファイル | |||
容量: 40.00 GiB | |||
割り当て: 12.19 GiB | |||
<br> | |||
以下の例では、プール名 : defaultに存在するサイズ : 50[GiB]の仮想マシン名 : RHEL_9.qcow2を、50[GiB]に拡張している。<br> | |||
以下に示す2種類のコマンドは、同様の結果になる。<br> | |||
<br> | |||
なお、<code>--delta</code>を使用する方が現在の容量を意識せずに済む。<br> | |||
sudo virsh vol-resize <仮想マシン名 または 仮想マシンのファイルのパス> --pool <プール名> --delta 10GiB | |||
# または | |||
sudo virsh vol-resize <仮想マシン名 または 仮想マシンのファイルのパス> --pool <プール名> 50GiB | |||
<br> | |||
以下の例では、仮想マシンのファイルサイズを5[GiB]縮小している。<br> | |||
ファイルサイズの縮小する場合はデータを破壊するリスクがあるため、実行する前にバックアップを作成した方がよい。<br> | |||
sudo virsh vol-resize <仮想マシン名 または 仮想マシンのファイルのパス> --pool <プール名> --delta -5GiB --shrink | |||
# または | |||
sudo virsh vol-resize <仮想マシン名 または 仮想マシンのファイルのパス> --pool <プール名> 35GiB --shrink | |||
<br><br> | |||
{{#seo: | |||
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki | |||
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,Podman,電気回路,電子回路,基板,プリント基板 | |||
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux | |||
|image=/resources/assets/MochiuLogo_Single_Blue.png | |||
}} | |||
__FORCETOC__ | __FORCETOC__ | ||
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]] | [[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]] | ||