CentOS 8 で古いカーネルを削除する方法

この記事には改訂版あり
shobon.hatenablog.com

以上、2022/5/4 追記。


長いので結論を先に。

# dnf remove --oldinstallonly
(最新の世代だけ残す)
 または
# dnf remove $(dnf repoquery --installonly --latest-limit=-2)
(最新の2世代だけ残す)

なぜ上記のようになるかは、以下の通り。

CentOS 7 までは、

# package-cleanup --oldkernels --count=2

などとして古いカーネルを削除できた。

CentOS 8で同じようにやっても、package-cleanup の引数に --oldkernels が無いエラーとなる。

# package-cleanup --oldkernels --count=2
package-cleanup has to be executed with one of the options: --dupes, --leaves, --orphans, --problems or --cleandupes

CentOS 8では、dnfコマンドのオプションで古いカーネルを削除できる。

dnfコマンドでは、パッケージを検索する repoquery オプションとともに、検索オプションを指定できる。

これを使って、インストール済みカーネルのリストを確認する。

# dnf repoquery --installonly
kernel-0:4.18.0-147.3.1.el8_1.x86_64
kernel-0:4.18.0-147.5.1.el8_1.x86_64
kernel-0:4.18.0-193.6.3.el8_2.x86_64
kernel-core-0:4.18.0-147.3.1.el8_1.x86_64
kernel-core-0:4.18.0-147.5.1.el8_1.x86_64
kernel-core-0:4.18.0-193.6.3.el8_2.x86_64
kernel-modules-0:4.18.0-147.3.1.el8_1.x86_64
kernel-modules-0:4.18.0-147.5.1.el8_1.x86_64
kernel-modules-0:4.18.0-193.6.3.el8_2.x86_64

以下のようにすると、最新の世代だけを残して、古いカーネルを削除できる。

# dnf remove --oldinstallonly

ある世代数を残したければ、repoquery と併せて、--latest-limit オプションを指定する事で、古い世代を取得する事もできる。
書式としては、--latest-limit=世代 のように指定する。

# dnf repoquery --installonly
kernel-0:4.18.0-147.3.1.el8_1.x86_64
kernel-0:4.18.0-147.5.1.el8_1.x86_64
kernel-0:4.18.0-193.6.3.el8_2.x86_64
kernel-core-0:4.18.0-147.3.1.el8_1.x86_64
kernel-core-0:4.18.0-147.5.1.el8_1.x86_64
kernel-core-0:4.18.0-193.6.3.el8_2.x86_64
kernel-modules-0:4.18.0-147.3.1.el8_1.x86_64
kernel-modules-0:4.18.0-147.5.1.el8_1.x86_64
kernel-modules-0:4.18.0-193.6.3.el8_2.x86_64

# dnf repoquery --installonly --latest-limit=1
kernel-0:4.18.0-193.6.3.el8_2.x86_64
kernel-core-0:4.18.0-193.6.3.el8_2.x86_64
kernel-modules-0:4.18.0-193.6.3.el8_2.x86_64
 →最新の世代

# dnf repoquery --installonly --latest-limit=2
kernel-0:4.18.0-147.5.1.el8_1.x86_64
kernel-0:4.18.0-193.6.3.el8_2.x86_64
kernel-core-0:4.18.0-147.5.1.el8_1.x86_64
kernel-core-0:4.18.0-193.6.3.el8_2.x86_64
kernel-modules-0:4.18.0-147.5.1.el8_1.x86_64
kernel-modules-0:4.18.0-193.6.3.el8_2.x86_64
 →最新から2世代

# dnf repoquery --installonly --latest-limit=-1
kernel-0:4.18.0-147.3.1.el8_1.x86_64
kernel-0:4.18.0-147.5.1.el8_1.x86_64
kernel-core-0:4.18.0-147.3.1.el8_1.x86_64
kernel-core-0:4.18.0-147.5.1.el8_1.x86_64
kernel-modules-0:4.18.0-147.3.1.el8_1.x86_64
kernel-modules-0:4.18.0-147.5.1.el8_1.x86_64
 →最新以外の世代

# dnf repoquery --installonly --latest-limit=-2
kernel-0:4.18.0-147.3.1.el8_1.x86_64
kernel-core-0:4.18.0-147.3.1.el8_1.x86_64
kernel-modules-0:4.18.0-147.3.1.el8_1.x86_64
 →最新から2世代以外


これを利用して、冒頭の記載のようにすると、最新から2世代以外を削除できる。

CentOS 8.4 から RockyLinux 8.4への移行

ついに、RockyLinux がGAとなったので、VMware環境で移行を試してみた。

環境

$ cat /etc/redhat-release
CentOS Linux release 8.4.2105

VMware ESXi 7.0 上の仮想マシン
 ファームウェアEFI(推奨)
 セキュアブート:有効

移行手順

以下に移行スクリプトがある。
GitHub - rocky-linux/rocky-tools


移行スクリプトを入手

# wget https://raw.githubusercontent.com/rocky-linux/rocky-tools/main/migrate2rocky/migrate2rocky.sh

実行権を与えて実行

# chmod +x migrate2rocky.sh
# bash migrate2rocky.sh -r

EFI Secure Boot is enabled but Rocky Linux doesn't provide a signed shim yet. Disable EFI Secure Boot and reboot.

An error occurred while we were attempting to convert your system to Rocky Linux. Your system may be unstable. Script will now exit to prevent possible damage.

 A log of this installation can be found at /var/log/migrate2rocky.log

エラーが出た。
意訳すると、「EFIセキュアブートが有効になっているが、Rocky Linuxはまだsigned shimを提供していないので無効化して」とのこと。

表示されているが、/var/log/migrate2rocky.log には、上記と同じメッセージが記録されている。

なお、-r オプションを忘れると、上記のEFIの問題とは関係なく、Usageが表示される。

# bash migrate2rocky.sh
Usage: migrate2rocky.sh [OPTIONS]

Options:
-h Display this help
-r Convert to rocky
-V Verify switch
   !! USE WITH CAUTION !!


仮想マシンを停止してから、
仮想マシン→設定の編集→仮想マシンオプション→起動オプション にて、「セキュアブート」を有効→無効へ変更する。(画像の真ん中あたりのチェックを外す)
f:id:savakan:20210703145634p:plain


なお、ここで勢い余ってEFI(推奨)→BIOS へ変更すると、
 「ファームウェアを変更すると、インストールされているゲスト OS を
  起動できなくなる場合があります。」
VMwareで警告されるが、そのまま続行するとOSが起動しなくなるので注意。
EFIに戻せば、起動するように戻った)


セキュアブートを無効化した後、仮想マシンを起動して、再び移行スクリプトを実行。

# bash migrate2rocky.sh -r
Preparing to migrate CentOS Linux 8 to Rocky Linux 8.

Determining repository names for CentOS Linux 8.Failed to set locale, defaulting to C.UTF-8
.Failed to set locale, defaulting to C.UTF-8
.Failed to set locale, defaulting to C.UTF-8
.Failed to set locale, defaulting to C.UTF-8
.Failed to set locale, defaulting to C.UTF-8


Found the following repositories which map from CentOS Linux 8 to Rocky Linux 8:
CentOS Linux 8  Rocky Linux 8
appstream       appstream
baseos          baseos
extras          extras

Getting system package names for CentOS Linux 8Failed to set locale, defaulting to C.UTF-8
Failed to set locale, defaulting to C.UTF-8
Failed to set locale, defaulting to C.UTF-8
Failed to set locale, defaulting to C.UTF-8
.Failed to set locale, defaulting to C.UTF-8
Failed to set locale, defaulting to C.UTF-8
.Failed to set locale, defaulting to C.UTF-8
.Failed to set locale, defaulting to C.UTF-8
Failed to set locale, defaulting to C.UTF-8
.Failed to set locale, defaulting to C.UTF-8
Failed to set locale, defaulting to C.UTF-8
.Failed to set locale, defaulting to C.UTF-8
.Failed to set locale, defaulting to C.UTF-8
Failed to set locale, defaulting to C.UTF-8
.Failed to set locale, defaulting to C.UTF-8
.Failed to set locale, defaulting to C.UTF-8
.Failed to set locale, defaulting to C.UTF-8


Found the following system packages which map from CentOS Linux 8 to Rocky Linux 8:
CentOS Linux 8        Rocky Linux 8
centos-backgrounds    rocky-backgrounds
centos-gpg-keys       rocky-gpg-keys
centos-logos          rocky-logos
centos-indexhtml      rocky-indexhtml
centos-linux-release  rocky-release
centos-logos-httpd    rocky-logos-httpd
centos-linux-repos    rocky-repos

Getting list of installed system packages.

We will replace the following CentOS Linux 8 packages with their Rocky Linux 8 equivalents
Packages to be Removed  Packages to be Installed
centos-gpg-keys         rocky-gpg-keys
centos-linux-release    rocky-release
centos-linux-repos      rocky-repos

Getting a list of enabled modules for the system repositories.

In addition to the above the following system packages will be removed:
centos-linux-release
centos-linux-release
Failed to set locale, defaulting to C.UTF-8

Excluding modules:
libselinux-python:2.8

Found the following modules to re-enable at completion:

Running dnf update before we attempt the migration.
Last metadata expiration check: 1:53:41 ago on Fri Jul  2 08:23:50 2021.
Dependencies resolved.
Nothing to do.
Complete!
Failed to set locale, defaulting to C.UTF-8
Added rockyappstream repo from https://dl.rockylinux.org/pub/rocky/8/AppStream/x86_64/os/
Added rockybaseos repo from https://dl.rockylinux.org/pub/rocky/8/BaseOS/x86_64/os/
rockyappstream                                  4.2 MB/s | 7.1 MB     00:01
rockybaseos                                     3.8 MB/s | 2.5 MB     00:00
Failed to set locale, defaulting to C.UTF-8
> > > ================================================================================
 Package                  Arch       Version              Repository       Size
================================================================================
Installing:
 rocky-gpg-keys           noarch     8.4-26.el8           rockybaseos      11 k
 rocky-release            noarch     8.4-26.el8           rockybaseos      19 k
 rocky-repos              noarch     8.4-26.el8           rockybaseos      12 k
Removing:
 centos-gpg-keys          noarch     1:8-2.el8            @anaconda       3.3 k
 centos-linux-release     noarch     8.4-1.2105.el8       @baseos          25 k
 centos-linux-repos       noarch     8-2.el8              @anaconda        26 k

Transaction Summary
================================================================================
Install  3 Packages
Remove   3 Packages

Total download size: 43 k
Downloading Packages:
(1/3): rocky-gpg-keys-8.4-26.el8.noarch.rpm     163 kB/s |  11 kB     00:00
(2/3): rocky-release-8.4-26.el8.noarch.rpm      242 kB/s |  19 kB     00:00
(3/3): rocky-repos-8.4-26.el8.noarch.rpm        149 kB/s |  12 kB     00:00
--------------------------------------------------------------------------------
Total                                           491 kB/s |  43 kB     00:00
warning: /var/cache/dnf/rockybaseos-56e41edc159a87c2/packages/rocky-gpg-keys-8.4-26.el8.noarch.rpm: Header V4 RSA/SHA256 Signature, key ID 6d745a60: NOKEY
rockybaseos                                     1.6 MB/s | 1.6 kB     00:00
Importing GPG key 0x6D745A60:
 Userid     : "Release Engineering <infrastructure@rockylinux.org>"
 Fingerprint: 7051 C470 A929 F454 CEBE 37B7 15AF 5DAC 6D74 5A60
 From       : /tmp/tmp.PoBnAwBzcP/gpg/RPM-GPG-KEY-rockyofficial
Key imported successfully
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                        1/1
  Running scriptlet: rocky-gpg-keys-8.4-26.el8.noarch                       1/1
  Installing       : rocky-gpg-keys-8.4-26.el8.noarch                       1/6
・・・省略
Complete!
Failed to set locale, defaulting to C.UTF-8
Generating grub configuration file ...
Adding boot menu entry for EFI firmware configuration
done
BootCurrent: 0003
BootOrder: 0004,0003,0000,0001,0002
Boot0000* EFI Virtual disk (0.0)
Boot0001* EFI VMware Virtual SATA CDROM Drive (0.0)
Boot0002* EFI Network
Boot0003* CentOS Linux
Boot0004* Rocky Linux

Done, please reboot your system.
A log of this installation can be found at /var/log/migrate2rocky.log

ログは、/var/log/migrate2rocky.log に保存される。

OSを再起動する

# reboot

OS起動時のカーネル選択画面にて、Rocky Linuxのものが選択されているか確認する。
見逃した場合、以下で確認

# grubby --info DEFAULT | grep title
title="Rocky Linux (4.18.0-305.3.1.el8_4.x86_64) 8.4 (Green Obsidian)"

OS情報のファイルが、AlmaLinuxに変わっているか確認

# cat /etc/redhat-release
Rocky Linux release 8.4 (Green Obsidian)

リポジトリもRocky Linuxになっている

# ls /etc/yum.repos.d/
Rocky-AppStream.repo  Rocky-Devel.repo   Rocky-HighAvailability.repo  
Rocky-Plus.repo        Rocky-RT.repo                Rocky-Sources.repo
Rocky-BaseOS.repo     Rocky-Extras.repo  Rocky-Media.repo             
Rocky-PowerTools.repo  Rocky-ResilientStorage.repo


CentOS→AlmaLinuxへの移行に関する記事はコチラ
shobon.hatenablog.com

CentOS 8.4 から AlmaLinux 8.4への移行

以前に、CentOS 8→AlmaLinux Betaへの移行に関する記事を書いた。

shobon.hatenablog.com


Rocky Linuxもリリースされ、Almaと両方の移行について手順を整理することにした。
とりあえず、AlmaLinuxから。

環境

$ cat /etc/redhat-release
CentOS Linux release 8.4.2105

VMware ESXi 7.0 上の仮想マシン
 ファームウェアEFI(推奨)
 セキュアブート:有効

移行手順

以下に移行スクリプトがある。
GitHub - AlmaLinux/almalinux-deploy: EL to AlmaLinux migration tool.


移行スクリプトを入手

# wget https://raw.githubusercontent.com/AlmaLinux/almalinux-deploy/master/almalinux-deploy.sh

実行権を与えて実行

# chmod +x almalinux-deploy.sh
# bash almalinux-deploy.sh
Check root privileges                                                 OK
Check centos-8.x86_64 is supported                                    OK
Download RPM-GPG-KEY-AlmaLinux                                        OK
Import RPM-GPG-KEY-AlmaLinux to RPM DB                                OK
Download almalinux-release package                                    OK
Verify almalinux-release package                                      OK
Your OS is supported                                                  OK
Remove OS specific rpm packages                                       OK
Verifying...                          ########################################
準備しています...              ########################################
更新中 / インストール中...
almalinux-release-8.4-2.el8           ########################################
Install almalinux-release package                                     OK
Backup of alternatives is done                                        OK
最速のミラーを確定しています (125 hosts)..
AlmaLinux 8 - BaseOS                            504 kB/s | 3.5 MB     00:07
AlmaLinux 8 - AppStream                         5.9 MB/s | 7.5 MB     00:01
AlmaLinux 8 - Extras                             14 kB/s | 2.5 kB     00:00
依存関係が解決しました。
=======================================================================================
 パッケージ                    Arch    バージョン                      Repo      サイズ
=======================================================================================
インストール:
 kernel                        x86_64  4.18.0-305.3.1.el8_4            baseos     5.9 M
 kernel-core                   x86_64  4.18.0-305.3.1.el8_4            baseos      36 M
 kernel-modules                x86_64  4.18.0-305.3.1.el8_4            baseos      28 M
アップグレード:
 chrony                        x86_64  3.5-2.el8.alma                  baseos     269 k
 grub2-common                  noarch  1:2.02-99.el8.alma              baseos     889 k
 grub2-efi-x64                 x86_64  1:2.02-99.el8.alma              baseos     477 k
・・・省略
完了しました!
Run dnf distro-sync -y                                                OK
Restoring of alternatives is done                                     OK
Generating grub configuration file ...
Adding boot menu entry for EFI firmware configuration
done
All Secure Boot related packages which were released by not AlmaLinux are reinstalledOK
BootCurrent: 0003
BootOrder: 0004,0003,0000,0001,0002
Boot0000* EFI Virtual disk (0.0)
Boot0001* EFI VMware Virtual SATA CDROM Drive (0.0)
Boot0002* EFI Network
Boot0003* CentOS Linux
Boot0004* AlmaLinux
The new EFI boot record for AlmaLinux is added                        OK

Migration to AlmaLinux is completed

OS再起動する

# reboot

OS起動時のカーネル選択画面にて、AlmaLinuxのものが選択されているか確認。

見逃した場合、以下で確認

# grubby --info DEFAULT | grep title
title="AlmaLinux (4.18.0-305.3.1.el8_4.x86_64) 8.4 (Electric Cheetah)"

OS情報のファイルが、AlmaLinuxに変わっているか確認

# cat /etc/redhat-release
AlmaLinux release 8.4 (Electric Cheetah)

リポジトリもAlmaLinuxになっている

# ls /etc/yum.repos.d/almalinux*
/etc/yum.repos.d/almalinux-ha.repo  /etc/yum.repos.d/almalinux-powertools.repo  /etc/yum.repos.d/almalinux.repo


以前のBataへの移行の時のようなエラーは出ず、スムーズに移行完了。

追記

CentOS→Rocky Linuxへの移行に関する記事はコチラ
shobon.hatenablog.com

Vivaldiで拡張機能のインストールボタンが表示されない原因と解決方法

VivaldiChrome ウェブストアから拡張を機能をインストールしようとしたら、
Chromeに追加」のインストールボタンが表示されなかった。

f:id:savakan:20210625160030p:plain


拡張機能をインストールする前に、設定を色々と調整したのが原因と思い、設定を見直し。

設定>プライバシー>ウェブストア にチェックを入れてブラウザを再起動。
f:id:savakan:20210625154510p:plain


これで、「Chromeに追加」のインストールボタンが表示される。
f:id:savakan:20210625160223p:plain

Vivaldi で現在のセッションを他PCへ移行する方法

PCの引っ越しで必要になったのでメモ。

大量にタブを開いていたので、いちいちブックマークへ入れるとかではなく、タブの情報を丸ごと移せないかと方法を探していた。

現在のセッションをファイルへ保存

タブを増やす+のあたりで右クリックし、
「全てのタブをセッションとして保存」を選択する。
f:id:savakan:20210620100619p:plain

セッション名(後述のファイル名になる)を指定して、保存する。


\AppData\Local\Vivaldi\User Data\Default\Sessions
フォルダに、*****.bin のようなファイル名で保存される。
これを移行先へ持って行く。

他PCでセッションを復元

.bin のファイルを、移行先PCの同じパスのフォルダに入れる。

Vivaldi を開き、ファイル>保存されたセッションを開く
 のメニューを開くと、配置したファイル名が見えるので、読み込む。


以下が参考になった。
forum.vivaldi.net

Vine Linux に思いを馳せる

Rocky LinuxのRCがリリースされたので試していたGWに、Vine Linux終了の文字をみかけた。

vinelinux.org


約20年前に出会ったVine Linuxは、私が最初に触れたLinuxだった。

初めて買ったインストールCD付きの書籍も、初心を忘れないようにと本棚に鎮座している。

私の人生でも重要な要素だったに違いないLinux

疎遠になってしまっていたものの、色々と思い出があるディストリビューションだった。


運営に携わっておられた方々、私に様々な事を教えてくれたVineユーザの方々、大変お世話になりました。

ここに感謝申し上げます。

スライディング裸族で外付けしたHDDのCrystalDiskMark

先日書いたスライディング裸族の記事の続き。

shobon.hatenablog.com


同じHDDでベンチマークは取れなかったので、しっかりした比較ではなく、PC内蔵HDDとベンチマーク結果を並べただけ。

PC内蔵のHDD

型番:ST2000DM008
容量:2TB
回転数:7200rpm
キャッシュ:256MB
インターフェース:Serial ATA600

f:id:savakan:20210503131712p:plain

スライディング裸族でUSB接続したHDD

型番:WD20EZRZ-RT
容量:2TB
回転数:5400rpm
キャッシュ:64MB
インターフェース:Serial ATA600(但し、スライディング裸族でUSB 3.0接続)

f:id:savakan:20210503131721p:plain



外付けHDDの方が回転数が5400rpmと低い事を考慮すると、こんなもん?まずまず?なパフォーマンスかと思う。