お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2020-11-08 01:42:50

nahoko
メンバ
登録日: 2020-11-05

sudo apt upgrade したらカーネルが3個になり、一番古いやつを消したい

sudo apt upgrade したらカーネルが3個になり、一番古いやつを消したい

オフライン

 

#2 2020-11-08 03:00:10

nahoko
メンバ
登録日: 2020-11-05

Re: sudo apt upgrade したらカーネルが3個になり、一番古いやつを消したい

https://www.it-swarm.dev/ja/linux/linux%E3%82%AB%E3%83%BC%E3%83%8D%E3%83%AB%E3%81%AE%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%81%8C%E8%A4%87%E6%95%B0%E3%81%82%E3%82%8B%E3%81%AE%E3%81%AF%E8%89%AF%E3%81%84%E3%81%A7%E3%81%99%E3%81%8B%EF%BC%9F/960881965/


RedHatとDebianベースのディストリビューションはどちらも、デフォルトでyumまたは_apt-get_を使用して新しいバージョンをインストールすると、
カーネルのいくつかのバージョンを保持します。これは良い習慣と考えられており、
:最新のカーネルで何か問題が発生した場合、常に再起動でき、GRUBで以前のカーネルのいずれかを使用して起動することを選択できます。
Debianは古いカーネルを保持しますが、それらを自動的に削除しません。ブートパーティションを解放する必要がある場合は、
古いカーネルを手動で削除する必要があります(以前のカーネルの少なくとも1つを残すことを忘れないでください)。
すべてのカーネルインストールパッケージとカーネルヘッダーパッケージを一覧表示するには、dpkg -l | egrep "linux-(im|he)"を使用します。

---------------------------
ということで
$ dpkg -l | egrep "linux-(im|he)"
ii  linux-headers-4.19.0-10-amd64          4.19.132-1                          amd64        Header files for Linux 4.19.0-10-amd64
ii  linux-headers-4.19.0-10-common         4.19.132-1                          all          Common header files for Linux 4.19.0-10
ii  linux-headers-4.19.0-12-amd64          4.19.152-1                          amd64        Header files for Linux 4.19.0-12-amd64
ii  linux-headers-4.19.0-12-common         4.19.152-1                          all          Common header files for Linux 4.19.0-12
ii  linux-headers-4.19.0-9-amd64           4.19.118-2+deb10u1                  amd64        Header files for Linux 4.19.0-9-amd64
ii  linux-headers-4.19.0-9-common          4.19.118-2+deb10u1                  all          Common header files for Linux 4.19.0-9
ii  linux-image-4.19.0-10-amd64            4.19.132-1                          amd64        Linux 4.19 for 64-bit PCs (signed)
ii  linux-image-4.19.0-12-amd64            4.19.152-1                          amd64        Linux 4.19 for 64-bit PCs (signed)
rc  linux-image-4.19.0-8-amd64             4.19.98-1+deb10u1                   amd64        Linux 4.19 for 64-bit PCs (signed)
ii  linux-image-4.19.0-9-amd64             4.19.118-2+deb10u1                  amd64        Linux 4.19 for 64-bit PCs (signed)
ii  linux-image-amd64                      4.19+105+deb10u7                    amd64        Linux for 64-bit PCs (meta-package)

$

つぎはどうしたら?

オフライン

 

#3 2020-11-08 18:17:35

nahoko
メンバ
登録日: 2020-11-05

Re: sudo apt upgrade したらカーネルが3個になり、一番古いやつを消したい

$ sudo apt autoremove
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています               
状態情報を読み取っています... 完了
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 12 個。

$
かな?と思いつきやってみたがダメでした

オフライン

 

#4 2020-11-08 19:24:44

rohizuka
メンバ
登録日: 2009-06-25

Re: sudo apt upgrade したらカーネルが3個になり、一番古いやつを消したい

nahoko による投稿:

$ dpkg -l | egrep "linux-(im|he)"
ii  linux-headers-4.19.0-10-amd64          4.19.132-1                          amd64        Header files for Linux 4.19.0-10-amd64
ii  linux-headers-4.19.0-10-common         4.19.132-1                          all          Common header files for Linux 4.19.0-10
ii  linux-headers-4.19.0-12-amd64          4.19.152-1                          amd64        Header files for Linux 4.19.0-12-amd64
ii  linux-headers-4.19.0-12-common         4.19.152-1                          all          Common header files for Linux 4.19.0-12
ii  linux-headers-4.19.0-9-amd64           4.19.118-2+deb10u1                  amd64        Header files for Linux 4.19.0-9-amd64
ii  linux-headers-4.19.0-9-common          4.19.118-2+deb10u1                  all          Common header files for Linux 4.19.0-9
ii  linux-image-4.19.0-10-amd64            4.19.132-1                          amd64        Linux 4.19 for 64-bit PCs (signed)
ii  linux-image-4.19.0-12-amd64            4.19.152-1                          amd64        Linux 4.19 for 64-bit PCs (signed)
rc  linux-image-4.19.0-8-amd64             4.19.98-1+deb10u1                   amd64        Linux 4.19 for 64-bit PCs (signed)
ii  linux-image-4.19.0-9-amd64             4.19.118-2+deb10u1                  amd64        Linux 4.19 for 64-bit PCs (signed)
ii  linux-image-amd64                      4.19+105+deb10u7                    amd64        Linux for 64-bit PCs (meta-package)

$

出力結果からするとubuntuではなくdebianをインストールされてませんか?
debianで古くなったカーネルをうまいこと削除してくれるツールがあるのかは、わかりません。

https://www.debian.org/doc/manuals/debian-faq/kernel.ja.html#removeoldkernel

オンライン

 

#5 2020-11-09 07:03:25

ry
メンバ
登録日: 2008-07-30

Re: sudo apt upgrade したらカーネルが3個になり、一番古いやつを消したい

たしかにカーネル バージョンが ubuntu らしからぬ点がありますが、それは置いておいて

まず以下のコマンドでインストールされているカーネルに一覧を出します。

コード:

dpkg -l 'linux-*' | grep '^ii' | awk '{print $2 "\t" $3}' | grep 'image\|headers\|modules' | sort -V -k2

バージョンを見て要らないカーネル パッケージを sudo apt purge で削除するだけです。
最低限は linux-image-X.X.X...... のカーネル イメージを削除すれば事足りますが、同じバージョンのヘッダーやモジュールも不要になるはずなので大抵は一緒に削除してしまいますね。

なお、新しいバージョンのカーネルだけを残して他を削除するお手軽コマンドは寡聞にして存じません。

オフライン

 

#6 2020-11-09 08:26:36

rohizuka
メンバ
登録日: 2009-06-25

Re: sudo apt upgrade したらカーネルが3個になり、一番古いやつを消したい

ubuntuに限っていえば、古くなったカーネルは⁠autoremoveの対象になります
https://gihyo.jp/admin/serial/01/ubuntu … 278?page=2
また20.04以降のデスクトップ環境では、autoremoveの対象になったカーネルは"ソフトウェアの更新(update-manager)"で削除の提案がされるようになってます。

オンライン

 

#7 2020-11-09 11:43:25

nahoko
メンバ
登録日: 2020-11-05

Re: sudo apt upgrade したらカーネルが3個になり、一番古いやつを消したい

debianをインストールされてませんか?

はい。rohizukaさんお返事ありがとうございます。

デビアンでは手動。ubuntuでは⁠autoremove。

1,Debianは古いカーネルを保持しますが、それらを自動的に削除しません。ブートパーティションを解放する必要がある場合は、古いカーネルを手動で削除する必要があります(以前のカーネルの少なくとも1つを残すことを忘れないでください)。
(自分がひっぱってきた機械翻訳の引用文)
2,ubuntuに限っていえば、古くなったカーネルは⁠autoremoveの対象になります

3,dist-upgradeで新しくカーネルパッケージを追加し,起動も問題なく行えることを確認できたら,古いカーネルパッケージは不要になります。個別にパッケージ名を指定してアンインストールすることも可能ですが,「⁠autoremove」コマンドを使うことで,不要になったカーネルパッケージを一括削除できます。
autoremoveで削除されるのは,原則としてアップグレード時点で使用中ではなく,最新でもないカーネルです。少なくとも,2つのバージョンは削除せずにそのまま残すようになっています。

1の >Debianは古いカーネルを保持しますが、それらを自動的に削除しません。

ubuntu と比較してDebianは挙動が違うという意味とわかりませんでした。何でもかんでもほとんど同じと思っていました。

削除するターゲットについて。何がいらないか?

>バージョンを見て要らないカーネル パッケージを sudo apt purge で削除するだけです。

>最低限は linux-image-X.X.X...... のカーネル イメージを削除すれば事足りますが、同じバージョンのヘッダーやモジュールも不要になるはずなので大抵は一緒に削除してしまいますね。

>autoremoveで削除されるのは,原則としてアップグレード時点で使用中ではなく,最新でもないカーネルです。少なくとも,2つのバージョンは削除せずにそのまま残す

以上の方針を踏まえて
>まず以下のコマンドでインストールされているカーネルを一覧を出します。

$ dpkg -l 'linux-*' | grep '^ii' | awk '{print $2 "\t" $3}' | grep 'image\|headers\|modules' | sort -V -k2

linux-image-amd64    4.19+105+deb10u7          <
linux-headers-4.19.0-9-amd64    4.19.118-2+deb10u1                   <
linux-headers-4.19.0-9-common    4.19.118-2+deb10u1   <
linux-image-4.19.0-9-amd64    4.19.118-2+deb10u1     <
linux-headers-4.19.0-10-amd64    4.19.132-1
linux-headers-4.19.0-10-common    4.19.132-1
linux-image-4.19.0-10-amd64    4.19.132-1
linux-headers-4.19.0-12-amd64    4.19.152-1
linux-headers-4.19.0-12-common    4.19.152-1
linux-image-4.19.0-12-amd64    4.19.152-1

$
>バージョンを見て
4.19.0-12 と 同-10 を残します。

削除するターゲットは < をつけたやつと思います

$ sudo apt purge linux-image-amd64 4.19+105+deb10u7
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています               
状態情報を読み取っています... 完了
E: パッケージ 4.19+105+deb10u7 が見つかりません
E: '4.19+105+deb10u7' に一致するパッケージは見つかりませんでした
E: 正規表現 '4.19+105+deb10u7' ではパッケージは見つかりませんでした

$ sudo apt purge linux-headers-4.19.0-9-amd64 4.19.118-2+deb10u1
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています               
状態情報を読み取っています... 完了
E: パッケージ 4.19.118-2+deb10u1 が見つかりません
E: '4.19.118-2+deb10u1' に一致するパッケージは見つかりませんでした
E: 正規表現 '4.19.118-2+deb10u1' ではパッケージは見つかりませんでした

$
挫折。ryさんありがとうございます。

オフライン

 

#8 2020-11-09 16:55:59

nahoko
メンバ
登録日: 2020-11-05

Re: sudo apt upgrade したらカーネルが3個になり、一番古いやつを消したい

参考元
https://qiita.com/ytkumasan/items/d6cc70f151f130d58e9b
古いカーネルの削除方法メモ

$ uname -r
4.19.0-12-amd64

$ dpkg --get-selections | grep linux-
binutils-x86-64-linux-gnu            install
firmware-linux-free                install
firmware-linux-nonfree                install
linux-base                    install
linux-compiler-gcc-8-x86            install
linux-headers-4.19.0-10-amd64            install
linux-headers-4.19.0-10-common            install
linux-headers-4.19.0-12-amd64            install
linux-headers-4.19.0-12-common            install
linux-headers-4.19.0-9-amd64            install
linux-headers-4.19.0-9-common            install
linux-image-4.19.0-10-amd64            install
linux-image-4.19.0-12-amd64            install
linux-image-4.19.0-8-amd64            deinstall
linux-image-4.19.0-9-amd64            install
linux-image-amd64                install
linux-kbuild-4.19                install
linux-libc-dev:amd64                install
util-linux-locales                install

$
パッケージ名?は
linux-headers-4.19.0-9-amd64 等
まず、ヘッダを消します。

$ sudo apt-get autoremove --purge linux-headers-4.19.0-9-amd64
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています               
状態情報を読み取っています... 完了
以下のパッケージは「削除」されます:
  linux-headers-4.19.0-9-amd64* linux-headers-4.19.0-9-common*
アップグレード: 0 個、新規インストール: 0 個、削除: 2 個、保留: 14 個。
この操作後に 55.9 MB のディスク容量が解放されます。
続行しますか? [Y/n] y
(データベースを読み込んでいます ... 現在 254606 個のファイルとディレクトリがインストールされています。)
linux-headers-4.19.0-9-amd64 (4.19.118-2+deb10u1) を削除しています ...
linux-headers-4.19.0-9-common (4.19.118-2+deb10u1) を削除しています ...

$
いけました!
>ここで依存があればイメージも巻き込んで削除してくれます。(上記参考ページ)

$ sudo apt autoremove --purge linux-image-4.19.0-9-amd64
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています               
状態情報を読み取っています... 完了
以下のパッケージは「削除」されます:
  linux-image-4.19.0-9-amd64*
アップグレード: 0 個、新規インストール: 0 個、削除: 1 個、保留: 14 個。
この操作後に 269 MB のディスク容量が解放されます。
続行しますか? [Y/n] y
(データベースを読み込んでいます ... 現在 237328 個のファイルとディレクトリがインストールされています。)
linux-image-4.19.0-9-amd64 (4.19.118-2+deb10u1) を削除しています ...
/etc/kernel/prerm.d/dkms:
dkms: removing: r8168 8.046.00 (4.19.0-9-amd64) (x86_64)

-------- Uninstall Beginning --------
Module:  r8168
Version: 8.046.00
Kernel:  4.19.0-9-amd64 (x86_64)
-------------------------------------

Status: Before uninstall, this module version was ACTIVE on this kernel.

r8168.ko:
- Uninstallation
   - Deleting from: /lib/modules/4.19.0-9-amd64/updates/dkms/
rmdir: 'updates/dkms' を削除できません: ディレクトリは空ではありません
- Original module
   - No original module was found for this module on this kernel.
   - Use the dkms install command to reinstall any previous module version.

depmod........

update-initramfs...

DKMS: uninstall completed.
dkms: removing: zfs 0.8.4 (4.19.0-9-amd64) (x86_64)

-------- Uninstall Beginning --------
Module:  zfs
Version: 0.8.4
Kernel:  4.19.0-9-amd64 (x86_64)
-------------------------------------

Status: Before uninstall, this module version was ACTIVE on this kernel.

zavl.ko:
- Uninstallation
   - Deleting from: /lib/modules/4.19.0-9-amd64/updates/dkms/
rmdir: 'updates/dkms' を削除できません: ディレクトリは空ではありません
- Original module
   - No original module was found for this module on this kernel.
   - Use the dkms install command to reinstall any previous module version.


znvpair.ko:
- Uninstallation
   - Deleting from: /lib/modules/4.19.0-9-amd64/updates/dkms/
rmdir: 'updates/dkms' を削除できません: ディレクトリは空ではありません
- Original module
   - No original module was found for this module on this kernel.
   - Use the dkms install command to reinstall any previous module version.


zunicode.ko:
- Uninstallation
   - Deleting from: /lib/modules/4.19.0-9-amd64/updates/dkms/
rmdir: 'updates/dkms' を削除できません: ディレクトリは空ではありません
- Original module
   - No original module was found for this module on this kernel.
   - Use the dkms install command to reinstall any previous module version.


zcommon.ko:
- Uninstallation
   - Deleting from: /lib/modules/4.19.0-9-amd64/updates/dkms/
rmdir: 'updates/dkms' を削除できません: ディレクトリは空ではありません
- Original module
   - No original module was found for this module on this kernel.
   - Use the dkms install command to reinstall any previous module version.


zfs.ko:
- Uninstallation
   - Deleting from: /lib/modules/4.19.0-9-amd64/updates/dkms/
rmdir: 'updates/dkms' を削除できません: ディレクトリは空ではありません
- Original module
   - No original module was found for this module on this kernel.
   - Use the dkms install command to reinstall any previous module version.


icp.ko:
- Uninstallation
   - Deleting from: /lib/modules/4.19.0-9-amd64/updates/dkms/
rmdir: 'updates/dkms' を削除できません: ディレクトリは空ではありません
- Original module
   - No original module was found for this module on this kernel.
   - Use the dkms install command to reinstall any previous module version.


zlua.ko:
- Uninstallation
   - Deleting from: /lib/modules/4.19.0-9-amd64/updates/dkms/
rmdir: 'updates/dkms' を削除できません: ディレクトリは空ではありません
- Original module
   - No original module was found for this module on this kernel.
   - Use the dkms install command to reinstall any previous module version.


spl.ko:
- Uninstallation
   - Deleting from: /lib/modules/4.19.0-9-amd64/updates/dkms/
- Original module
   - No original module was found for this module on this kernel.
   - Use the dkms install command to reinstall any previous module version.

depmod...

DKMS: uninstall completed.
'/boot/initrd.img-4.19.0-9-amd64.old-dkms' を削除しました
/etc/kernel/postrm.d/initramfs-tools:
update-initramfs: Deleting /boot/initrd.img-4.19.0-9-amd64
/etc/kernel/postrm.d/zz-update-grub:
Generating grub configuration file ...
Found background image: /usr/share/images/desktop-base/desktop-grub.png
Linux イメージを見つけました: /boot/vmlinuz-4.19.0-12-amd64
Found initrd image: /boot/initrd.img-4.19.0-12-amd64
Linux イメージを見つけました: /boot/vmlinuz-4.19.0-10-amd64
Found initrd image: /boot/initrd.img-4.19.0-10-amd64
Adding boot menu entry for EFI firmware configuration
完了
(データベースを読み込んでいます ... 現在 232926 個のファイルとディレクトリがインストールされています。)
linux-image-4.19.0-9-amd64 (4.19.118-2+deb10u1) の設定ファイルを削除しています ...

$

なんか凄いヤバイ雰囲気を感じます...再起動せずに対策を考えます

オフライン

 

Board footer

Powered by FluxBB