2023/02/27(月) [n年前の日記]
#1 [pc][linux] GParted liveを使ってHDDのパーティションを移動
_昨日、
無料で利用できるパーティション管理ツール GParetd live を使って、Gateway M-2408j のHDDパーティションをリサイズ(縮小)したけれど。ついでにパーティションの移動もやってみたので手順をメモ。昨日のメモとダブってしまう部分もあるけれど…。
ちなみに、Gateway M-2408j のHDDには、Windows Vista と Linux Mint 21.1 64bit版がインストールされていて、デュアルブートできるようにしてある。OSの選択は、Linux Mint インストール時にインストールされた grub (grub2) を使って行う。
ちなみに、Gateway M-2408j のHDDには、Windows Vista と Linux Mint 21.1 64bit版がインストールされていて、デュアルブートできるようにしてある。OSの選択は、Linux Mint インストール時にインストールされた grub (grub2) を使って行う。
◎ GPartedをUSBメモリにインストール。 :
GParted live (gparted-live-1.5.0-1-i686.iso) を、32GBのUSBメモリに、Rufus 3.1 Portabl で書き込んだ。書き込む際にISOモードとDDモードのどちらかを選択するけど、今回はISOモードを選んだ。
_GParted -- Download
_Rufus - 起動可能なUSBドライブを簡単に作成できます
USBメモリから起動。Gateway M-2408j の場合、起動ロゴが出ているタイミングでF10キーを叩けばブートメニューが表示されるので、そこから起動デバイスを選ぶ。
途中でアレコレ尋ねてくるあたりは、 _昨日 のメモを参考に。
作業前のパーティション構成は以下。
作業内容は以下。
GParted の画面で、パーティションを右クリックするとメニューが開くので、「リサイズ/移動」を選べば、縮小、拡張、移動を指定できる。指定が終わったら「適用」相当のアイコンをクリック。今までの指定が順次行われていく。
_GParted -- Download
_Rufus - 起動可能なUSBドライブを簡単に作成できます
USBメモリから起動。Gateway M-2408j の場合、起動ロゴが出ているタイミングでF10キーを叩けばブートメニューが表示されるので、そこから起動デバイスを選ぶ。
途中でアレコレ尋ねてくるあたりは、 _昨日 のメモを参考に。
作業前のパーティション構成は以下。
- /dev/sda1 Windows Vista用の何か
- /dev/sda2 Windows Vista 約160GB
- /dev/sda3 拡張パーティション
- /dev/sda5 Linux Mint 約50GB
- /dev/sda6 Linux swap
作業内容は以下。
- Windows Vista用のパーティションを160GBから120GBにリサイズ(縮小)。
- 40GBほど空き領域ができるので、拡張パーティションの先端を前にずらす。
- Linux Mint 用パーティションと Linux swap も前に移動した。移動する際、「この処理をするとOSがブートできなくなるよ」と警告が出てきたけど、そのまま作業を進めた。
GParted の画面で、パーティションを右クリックするとメニューが開くので、「リサイズ/移動」を選べば、縮小、拡張、移動を指定できる。指定が終わったら「適用」相当のアイコンをクリック。今までの指定が順次行われていく。
◎ grub2の再インストール :
OSのブート領域が入ってるパーティションを移動してしまうと、grub2 の起動時におかしくなって Linuxなどが起動しないので、grub2 の再インストールが必要になるらしい。
再インストールの手順は以下に書いてあった。
_GParted -- GParted Manual
Gparted live の入ったUSBメモリで起動して、GParted を閉じてから、デスクトップ上の Terminal をダブルクリックして端末を開いて、コマンドを打ち込んでいく。
ちなみに、Gparted live で起動した際、ユーザ名は user、パスワードは live になってるらしい。root のパスワードは設定されてない模様。sudo を使って管理者権限でコマンド実行ができる。
_GParted -- Live CD/USB/PXE/HD
今回、Linux Mint の入ってるパーティションは /dev/sda5。
Linuxがインストールされているパーティションをマウントするためのディレクトリを作成。ディレクトリ名は何でもいい。たぶん。
パーティションをマウント。
もし、/boot を / と別パーティションにインストールしてある場合なら、以下の指定も必要になるらしい。今回は / の中に /boot が入っていたので、この指定はしなかった。
他の重要らしいディレクトリを割り当て。
マウントしたパーティションをルート(「/」)にする…らしい。たぶん。ここでエラーが出たけど、それについては後述する。
grub (grub2) のインストール。Debian や ubuntu は grub-install で良い、と書いてあるように見える。
再インストールの手順は以下に書いてあった。
_GParted -- GParted Manual
Gparted live の入ったUSBメモリで起動して、GParted を閉じてから、デスクトップ上の Terminal をダブルクリックして端末を開いて、コマンドを打ち込んでいく。
ちなみに、Gparted live で起動した際、ユーザ名は user、パスワードは live になってるらしい。root のパスワードは設定されてない模様。sudo を使って管理者権限でコマンド実行ができる。
_GParted -- Live CD/USB/PXE/HD
今回、Linux Mint の入ってるパーティションは /dev/sda5。
Linuxがインストールされているパーティションをマウントするためのディレクトリを作成。ディレクトリ名は何でもいい。たぶん。
sudo mkdir /tmp/linuxmint
パーティションをマウント。
sudo mount /dev/sda5 /tmp/linuxmint
もし、/boot を / と別パーティションにインストールしてある場合なら、以下の指定も必要になるらしい。今回は / の中に /boot が入っていたので、この指定はしなかった。
sudo mount /dev/sda3 /tmp/linuxmint/boot
他の重要らしいディレクトリを割り当て。
sudo mount --bind /dev /tmp/linuxmint/dev sudo mount --bind /proc /tmp/linuxmint/proc sudo mount --bind /sys /tmp/linuxmint/sys
マウントしたパーティションをルート(「/」)にする…らしい。たぶん。ここでエラーが出たけど、それについては後述する。
sudo chroot /tmp/linuxmint
grub (grub2) のインストール。Debian や ubuntu は grub-install で良い、と書いてあるように見える。
# grub-install /dev/sda or # grub2-install /dev/sda
◎ chrootでエラー :
chroot を実行したところでエラーが出た。
エラーメッセージでググると…。
_chroot - ArchWiki
アーキテクチャって何ぞや。要するに、HDDにインストールされているLinux Mint は64bit版だったのに、GParted live は32bit版(i686)を使ってしまったので、「32bit版と64bit版ではアーキテクチャが違うで」となってしまったらしい。たぶん。つまり今回は、GParted live も、HDD内にインストールされてるOSに合わせて64bit版(amd64)を使わないといけなかった模様。
どうせなら、HDDにインストールされている Linux Mint 21.1 のライブCD(DVD?)を使って作業してみることにした。そのほうが確実に作業できるだろう…。
linuxmint-21.1-cinnamon-64bit.iso を入手。Rufus でUSBメモリに書き込み。USBメモリから起動した後の作業手順は前述の通り。
ちなみに、Linux Mint のライブCDで起動した際、ユーザのパスワードは設定されてないらしいので、sudo を使って管理者権限でコマンドを実行する際にパスワードの入力は求められない。
_Linux Mint のデフォルトパスワード(live session password) - simotin13's message
これで、HDDから Linux Mint 21.1 64bit版が起動してくれる状態になった。一応念のために、HDDから Linux Mint が起動した状態で、grub の再インストールと更新をしておいた。
この状態なら、Windows Vista + Linux Mint が240GB未満に収まってくれたはずだから、240GBのSSDにも換装できるんじゃないか…。と思ったけれど調べてみたら HDD から SSD に換装する場合、dd なるコマンドを使って中身を転送することになるようで。となると、HDDの最後のあたりを転送する際にSSD側の容量が足りなくてエラーが発生しそうな気がする…。
chroot: cannot run command '/usr/bin/bash': Exec format error
エラーメッセージでググると…。
_chroot - ArchWiki
chroot: cannot run command '/usr/bin/bash': Exec format error というエラーが表示される場合、ホスト環境と chroot 環境のアーキテクチャが一致していません。
アーキテクチャって何ぞや。要するに、HDDにインストールされているLinux Mint は64bit版だったのに、GParted live は32bit版(i686)を使ってしまったので、「32bit版と64bit版ではアーキテクチャが違うで」となってしまったらしい。たぶん。つまり今回は、GParted live も、HDD内にインストールされてるOSに合わせて64bit版(amd64)を使わないといけなかった模様。
どうせなら、HDDにインストールされている Linux Mint 21.1 のライブCD(DVD?)を使って作業してみることにした。そのほうが確実に作業できるだろう…。
linuxmint-21.1-cinnamon-64bit.iso を入手。Rufus でUSBメモリに書き込み。USBメモリから起動した後の作業手順は前述の通り。
ちなみに、Linux Mint のライブCDで起動した際、ユーザのパスワードは設定されてないらしいので、sudo を使って管理者権限でコマンドを実行する際にパスワードの入力は求められない。
_Linux Mint のデフォルトパスワード(live session password) - simotin13's message
これで、HDDから Linux Mint 21.1 64bit版が起動してくれる状態になった。一応念のために、HDDから Linux Mint が起動した状態で、grub の再インストールと更新をしておいた。
sudo grub-install /dev/sda sudo update-grub
この状態なら、Windows Vista + Linux Mint が240GB未満に収まってくれたはずだから、240GBのSSDにも換装できるんじゃないか…。と思ったけれど調べてみたら HDD から SSD に換装する場合、dd なるコマンドを使って中身を転送することになるようで。となると、HDDの最後のあたりを転送する際にSSD側の容量が足りなくてエラーが発生しそうな気がする…。
[ ツッコむ ]
#2 [linux] swapパーティションを設定
ふとなんとなく、Gateway M-2408j + Linux Mint 21.1上で、swap のサイズを増やしたいなと思い立ってしまって。
GParted live を使って swapパーティションのサイズを 1.7GBから4GBに増やしてから、linux swap としてフォーマットをかけたところ、Linux Mint 21.1 が起動する際に swapパーティションを見つけられず、起動が随分と待たされる状態になってしまった。やっちまった。
以下を参考にして修復作業。
_Linux | SWAP領域の確認と作成 - わくわくBank
_/etc/fstabのデバイス名が変化し起動失敗した時の対処法【UUIDで解決!】|株式会社ネットアシスト
以下でswapの状態を確認できる。実行してみたら何も出てこなかったので、swapが有効になってない状態なのだろう…。
swap領域を作成。今回 swapとして使いたいパーティションは /dev/sda6。
swapとして指定。
ところで、mkswap を使った時に出てきたUUIDとはなんぞや。
_UUIDとは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
_UUID - Wikipedia
_UUID
ユニークなIDをHDDのパーティションにつけることで今後の管理を楽にしよう、ということなのかな。たぶん。
blkid というコマンドを使って、UUID を確認できる。
今回は以下のような構成だから…。Linux swap の UUID は、"1e053734-5db9-46ee-b790-93fd19d29eca" ということらしい。
/etc/fstab を修正してswapを永続化してみる。おそらく、/etc/fstab 内で今まで指定してたUUIDと、今現在のUUIDが違ってしまったので、swapパーティションを見つけられない状態になったのだろう…。
ただ、巷の解説記事を眺めた感じでは…。昨今は linux swap のパーティションを作らずに、swapファイルを作ってどうにかする場合が多そうに見えた。わざわざswap用のパーティションを作るのは時代遅れなのだろうか?
GParted live を使って swapパーティションのサイズを 1.7GBから4GBに増やしてから、linux swap としてフォーマットをかけたところ、Linux Mint 21.1 が起動する際に swapパーティションを見つけられず、起動が随分と待たされる状態になってしまった。やっちまった。
以下を参考にして修復作業。
_Linux | SWAP領域の確認と作成 - わくわくBank
_/etc/fstabのデバイス名が変化し起動失敗した時の対処法【UUIDで解決!】|株式会社ネットアシスト
以下でswapの状態を確認できる。実行してみたら何も出てこなかったので、swapが有効になってない状態なのだろう…。
sudo swapon -s
swap領域を作成。今回 swapとして使いたいパーティションは /dev/sda6。
$ sudo mkswap /dev/sda6 mkswap: /dev/sda6: 警告: 古い swap 署名を消去しています。 スワップ空間バージョン 1 を設定します。サイズ = 4.1 GiB (4399820800 バイト) ラベルはありません, UUID=1e053734-5db9-46ee-b790-93fd19d29eca
swapとして指定。
$ sudo swapon /dev/sda6 $ sudo swapon -s Filename Type Size Used Priority /dev/sda6 partition 4296700 0 -2swapが有効になった。
ところで、mkswap を使った時に出てきたUUIDとはなんぞや。
_UUIDとは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
_UUID - Wikipedia
_UUID
ユニークなIDをHDDのパーティションにつけることで今後の管理を楽にしよう、ということなのかな。たぶん。
blkid というコマンドを使って、UUID を確認できる。
$ sudo blkid /dev/sda2: LABEL="Partition_1" BLOCK_SIZE="512" UUID="3CF00E26F00DE74C" TYPE="ntfs" PARTUUID="2bab359d-02" /dev/sda5: UUID="55c2b3ae-1716-4184-b19c-05a1f97c36fc" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="2bab359d-05" /dev/sda1: LABEL="Recovery" BLOCK_SIZE="512" UUID="4252930E529305B7" TYPE="ntfs" PARTUUID="2bab359d-01" /dev/sda6: UUID="1e053734-5db9-46ee-b790-93fd19d29eca" TYPE="swap" PARTUUID="2bab359d-06"
今回は以下のような構成だから…。Linux swap の UUID は、"1e053734-5db9-46ee-b790-93fd19d29eca" ということらしい。
- dev/sda2 : Windows Vista
- dev/sda5 : Linux Mint (/)
- dev/sda1 : Windows Vista 用データドライブ相当
- dev/sda6 : Linux swap
/etc/fstab を修正してswapを永続化してみる。おそらく、/etc/fstab 内で今まで指定してたUUIDと、今現在のUUIDが違ってしまったので、swapパーティションを見つけられない状態になったのだろう…。
sudo vi /etc/fstab
# swap was on /dev/sda6 during installation UUID=1e053734-5db9-46ee-b790-93fd19d29eca none swap sw 0 0
ただ、巷の解説記事を眺めた感じでは…。昨今は linux swap のパーティションを作らずに、swapファイルを作ってどうにかする場合が多そうに見えた。わざわざswap用のパーティションを作るのは時代遅れなのだろうか?
◎ まだ時間がかかる。 :
Linux Mint 21.1 起動時に、swapパーティションを見つけてくれるようになったけど、まだ何かをチェックするところで時間がかかる。"scanning for btrfs file systems" と表示されたところで、十数秒待たされてしまう。
_[SOLVED] Very Slow boot time on Mint-19.3
_ubuntu - How to get rid of the “scanning for btrfs file systems” at start-up? - Unix & Linux Stack Exchange
_resume - Swap: From partition to file, now get "no matching swap device is available" - Ask Ubuntu
_Ubuntu18.04でハイバネート(休止状態)ができない
上記のやり取りで、「btrfs はそもそも使ってない環境が多いだろうからアンインストールしてみたらどうか」という話があったので試してみる。
update-initramfs とやらを実行した際に、警告が表示されていることに気づいた。ひょっとして、RESUMEとやらの指定で、古いswapパーティションのUUIDが記述されたままなのでは…? そこも修正しないといかんのではないか。
変更してから、再度 sudo update-initramfs -ukall を実行。警告が出てこない状態になった。この状態で再起動をかけたら、起動時に待たされる症状は無くなった。
おそらく、btrfs云々は関係なくて、initramfs云々で存在しないUUIDが指定されてたのが問題だった気がしてきた。
_[SOLVED] Very Slow boot time on Mint-19.3
_ubuntu - How to get rid of the “scanning for btrfs file systems” at start-up? - Unix & Linux Stack Exchange
_resume - Swap: From partition to file, now get "no matching swap device is available" - Ask Ubuntu
_Ubuntu18.04でハイバネート(休止状態)ができない
上記のやり取りで、「btrfs はそもそも使ってない環境が多いだろうからアンインストールしてみたらどうか」という話があったので試してみる。
sudo apt purge btrfs-tools btrfs-progs sudo update-initramfs -ukallちなみに、上記を実行したら、Linux Mint に標準でインストールされているバックアップツール、timeshift もアンインストールされた。
$ sudo update-initramfs -ukall update-initramfs: Generating /boot/initrd.img-5.15.0-60-generic W: initramfs-tools configuration sets RESUME=UUID=8f8f3f59-dd26-4779-b96a-2d6d75a3d620 W: but no matching swap device is available. I: The initramfs will attempt to resume from /dev/sda6 I: (UUID=1e053734-5db9-46ee-b790-93fd19d29eca) I: Set the RESUME variable to override this. ...
update-initramfs とやらを実行した際に、警告が表示されていることに気づいた。ひょっとして、RESUMEとやらの指定で、古いswapパーティションのUUIDが記述されたままなのでは…? そこも修正しないといかんのではないか。
sudo vi /etc/initramfs-tools/conf.d/resume
RESUME=UUID=1e053734-5db9-46ee-b790-93fd19d29eca
変更してから、再度 sudo update-initramfs -ukall を実行。警告が出てこない状態になった。この状態で再起動をかけたら、起動時に待たされる症状は無くなった。
おそらく、btrfs云々は関係なくて、initramfs云々で存在しないUUIDが指定されてたのが問題だった気がしてきた。
[ ツッコむ ]
以上、1 日分です。