web-dev-qa-db-ja.com

/ bootの空き容量を増やすにはどうすればよいですか?

/bootパーティションがほぼいっぱいになり、システムを再起動するたびに警告が表示されます。すでに古いカーネルパッケージ(linux-headers ...)を削除しましたが、実際には、自動更新に付属する新しいカーネルバージョンをインストールするためにそれを行いました。

その新しいバージョンをインストールすると、パーティションはほぼ一杯になります。それでは、他に何を削除できますか?古いカーネルイメージに関連付けられている他のファイルはありますか?

/bootパーティションにあるファイルのリストは次のとおりです。

:~$ ls /boot/
abi-2.6.31-21-generic         lost+found
abi-2.6.32-25-generic         memtest86+.bin
abi-2.6.38-10-generic         memtest86+_multiboot.bin
abi-2.6.38-11-generic         System.map-2.6.31-21-generic
abi-2.6.38-12-generic         System.map-2.6.32-25-generic
abi-2.6.38-8-generic          System.map-2.6.38-10-generic
abi-3.0.0-12-generic          System.map-2.6.38-11-generic
abi-3.0.0-13-generic          System.map-2.6.38-12-generic
abi-3.0.0-14-generic          System.map-2.6.38-8-generic
boot                          System.map-3.0.0-12-generic
config-2.6.31-21-generic      System.map-3.0.0-13-generic
config-2.6.32-25-generic      System.map-3.0.0-14-generic
config-2.6.38-10-generic      vmcoreinfo-2.6.31-21-generic
config-2.6.38-11-generic      vmcoreinfo-2.6.32-25-generic
config-2.6.38-12-generic      vmcoreinfo-2.6.38-10-generic
config-2.6.38-8-generic       vmcoreinfo-2.6.38-11-generic
config-3.0.0-12-generic       vmcoreinfo-2.6.38-12-generic
config-3.0.0-13-generic       vmcoreinfo-2.6.38-8-generic
config-3.0.0-14-generic       vmcoreinfo-3.0.0-12-generic
extlinux                      vmcoreinfo-3.0.0-13-generic
grub                          vmcoreinfo-3.0.0-14-generic
initrd.img-2.6.31-21-generic  vmlinuz-2.6.31-21-generic
initrd.img-2.6.32-25-generic  vmlinuz-2.6.32-25-generic
initrd.img-2.6.38-10-generic  vmlinuz-2.6.38-10-generic
initrd.img-2.6.38-11-generic  vmlinuz-2.6.38-11-generic
initrd.img-2.6.38-12-generic  vmlinuz-2.6.38-12-generic
initrd.img-2.6.38-8-generic   vmlinuz-2.6.38-8-generic
initrd.img-3.0.0-12-generic   vmlinuz-3.0.0-12-generic
initrd.img-3.0.0-13-generic   vmlinuz-3.0.0-13-generic
initrd.img-3.0.0-14-generic   vmlinuz-3.0.0-14-generic

現在、3.0.0-14-genericカーネルを使用しています。

562
user6722

未使用のカーネルがたくさんあります。次を使用して、最後のカーネルを除くすべてを削除します。

Sudo apt-get purge linux-image-{3.0.0-12,2.6.3{1-21,2-25,8-{1[012],8}}}

これは以下の略記です:

Sudo apt-get purge linux-image-3.0.0-12 linux-image-2.6.31-21 linux-image-2.6.32-25 linux-image-2.6.38-10 linux-image-2.6.38-11 linux-image-2.6.38-12 linux-image-2.6.38-8

linux-image-x.x.x-xパッケージを削除すると、linux-image-x.x.x-x-genericも削除されます。

ヘッダーは/usr/srcにインストールされ、アウトツリーカーネルモジュール(独自のnvidiaドライバーやvirtualboxなど)を構築するときに使用されます。一致するカーネルパッケージ(linux-image-*)がインストールされていない場合、ほとんどのユーザーはこれらのヘッダーパッケージを削除する必要があります。

インストールされているすべてのカーネルをリストするには、次を実行します。

dpkg -l linux-image-\* | grep ^ii

current実行中のカーネルを除く、削除可能なすべてのカーネルとヘッダーを表示する1つのコマンド:

kernelver=$(uname -r | sed -r 's/-[a-z]+//')
dpkg -l linux-{image,headers}-"[0-9]*" | awk '/ii/{print $2}' | grep -ve $kernelver

linux-headers-<some number>またはlinux-image-<some number>で始まるすべてのパッケージを選択し、インストール済みパッケージのパッケージ名を出力して、現在のロード/実行中のカーネル(必ずしも最新カーネル!)。これは、動作することがわかっている古いカーネルを削除する前に、新しいカーネルをテストすることをお勧めします。

そのため、カーネルをアップグレードして再起動してテストした後、次のコマンドを使用して他のすべてのカーネルを削除できます。

Sudo apt-get purge $(dpkg -l linux-{image,headers}-"[0-9]*" | awk '/ii/{print $2}' | grep -ve "$(uname -r | sed -r 's/-[a-z]+//')")
627
Lekensteyn

ブートパーティションがいっぱいです。これはカーネルの更新であるため、これらのファイルはブートパーティションにコピーされるため、削除する必要があります。 ブログ投稿 は、1つのコマンドで古いカーネルイメージをクリアする方法を示しています。メソッドの基本的な概要を説明します。次のコマンドを使用して、カーネルの現在のバージョンを出力します。

uname -r

次に、このコマンドを使用して、インストールした最新のカーネルではないすべてのカーネルを出力します。

dpkg -l linux-{image,headers}-"[0-9]*" | awk '/^ii/{ print $2}' | grep -v -e `uname -r | cut -f1,2 -d"-"` | grep -e '[0-9]'

現在のカーネルがそのリストにないことを確認してください。これが最終コマンドの大部分であることに注意してください(下を参照)。これらの古いカーネルをアンインストールして削除するには、これらの引数を次のようにパイプします。

Sudo apt-get -y purge

これで、最後の2つのコマンドをこの不浄な混乱に組み合わせることで、必要なすべてを実行できます。

dpkg -l linux-{image,headers}-"[0-9]*" | awk '/^ii/{ print $2}' | grep -v -e `uname -r | cut -f1,2 -d"-"` | grep -e '[0-9]' | xargs Sudo apt-get -y purge

そして、その1つのコマンドがすべてを処理してくれます。これが完全に機能することを確認しますが、インターネット上の誰も信頼しません。 :)詳細については、ブログの投稿で、コマンドの各部分が何をするのかを非常によく説明しているので、やりたいことを実行することに満足しています。

216
dward
Sudo apt-get autoremove

このコマンドは、ジョブを自動的に実行しています。

107
karan

Synaptic Package Managerを使用すると、古いカーネルイメージを簡単に選択して削除できます。 Screenshot of Synaptic Package Manager

Synapticがまだインストールされていない場合:

Sudo apt-get install synaptic

アプリケーションを起動し、表示されたオプションを選択します。

/ bootフォルダー内のファイルに応じて、バージョンが「2.6.x」でxが31〜38のすべての「linux-」パッケージを強調表示できるはずです。

これらの各Linuxパッケージを右クリックして、[完全な削除をマーク]オプションを選択します。最後に、適用ボタンをクリックします。これにより、すべてのファイルと関連ファイルが削除されます。 /bootフォルダーは少し整頓されているはずです。

40
fossfreedom

あなたの問題の詳細な投稿をありがとう、これは私が正しい方向に進んだ。以前のカーネルファイルを保持しておくと便利です。一度にすべてのカーネルファイルを削除できますが、この投稿を確認してください。
未使用のLinuxカーネルヘッダー、イメージ、およびモジュールをすべて削除する方法

コマンドライン経由で完了。リモート経由でこれを行う場合、WINSCPのようなものを使用してターミナルセッションを開いて貼り付けるだけで、非常にうまく機能します。

ここでは記事のリンクからコピーされています。記事全体を読むことをお勧めします。

dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs Sudo apt-get -y purge
25
Omni

これは古い質問に対する新しい答えですが、この問題(およびそれ以上)を簡単に削除する方法は、 buntu Tweak をインストールすることです。 インストールする

Sudo add-apt-repository ppa:tualatrix/ppa
Sudo apt-get update
Sudo apt-get install ubuntu-Tweak

次に、Ubuntu Tweakを実行し、「janitor」タブに移動します。ここから3回クリックするだけです。

Ubuntu Tweak janitor for old kernels

ただし、安全のために、最後のカーネル(決して知らない)またはよく知られている動作中のカーネルを残すほうが良いでしょう。しかし、それは簡単にカスタマイズできます。

同じツールを使用して多くのものを削除できます。サムネイルキャッシュまたはTBキャッシュを削除すると、必要に応じてシステムがそれらを再構築する必要があることに注意してください。

23
Rmano

dpkgを使用してパッケージを直接削除することで問題を修正できました。パッケージは引き続きdpkg -lにリストされますが、ファイルは/bootから削除され、スペースが解放されます。

phrogz@planar:/boot$ Sudo dpkg --remove linux-image-2.6.32-30-server
(Reading database ... 145199 files and directories currently installed.)
Removing linux-image-2.6.32-30-server ...
Running postrm hook script /usr/sbin/update-grub.
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.32-35-server
Found linux image: /boot/vmlinuz-2.6.32-34-server
Found initrd image: /boot/initrd.img-2.6.32-34-server
Found linux image: /boot/vmlinuz-2.6.32-33-server
Found initrd image: /boot/initrd.img-2.6.32-33-server
Found linux image: /boot/vmlinuz-2.6.32-32-server
Found initrd image: /boot/initrd.img-2.6.32-32-server
Found linux image: /boot/vmlinuz-2.6.32-31-server
Found initrd image: /boot/initrd.img-2.6.32-31-server
Found memtest86+ image: /memtest86+.bin
done

# Repeat for kernels -31 and -32 and -33, up to (but not including)
# the version listed by `uname -a`

この後、apt-get -f installは依存関係の問題を修正し、すべてが順調でした。

ただし、/bootサイズを増やすべきか、何か他のことを行うべきかを知る必要があるため、この答えは受け入れません。

19
Phrogz

別の/ bootパーティションの使用を停止すると、そのような限られたスペースはなくなります。これを行うには、パーティションをアンマウントしてから別の場所にマウントし、そこにあるすべてのファイルをルートパーティションの/ bootディレクトリにコピーしてから、/ etc/fstabからエントリを削除してgrubを再インストールします。例(正しいパーティションを使用する必要があります):

Sudo -s
umount /boot
mount /dev/sda2 /mnt
cp -a /mnt/* /boot/
umount /mnt
gedit /etc/fstab
grub-install /dev/sda

次に、gpartedを使用して古い/ bootパーティションを削除し、場合によってはルートパーティションを拡張してそのスペースを使用できます。ルートパーティションを拡張するには、livecdから起動する必要があり、空き領域はすぐ右側にある必要があります。/bootパーティションが現在ルートパーティションの左側にある場合、最初にルートパーティションを左側に移動してから拡張する必要がありますが、これには非常に長い時間がかかる可能性があるため、トラブル。

15
psusi

上記の回答から最善を得るために、私の実証済みのアプローチは次のとおりです。

  • uname -a実行中のカーネルを見つけます。
  • dpkg -l linux-{headers,image}-\* | grep ^iiは、現在インストールされているすべてのカーネル関連パッケージをリストします。これには、実行中のカーネルが含まれます。
  • Sudo apt-get purge linux-{image,headers}-3.16.0-{xx,yy,zz}は、古いカーネルを削除します。 xx,yy,zzを削除するカーネルビルドのリストに置き換えます。これらは、現在実行中のカーネルよりも古い、前のコマンドでリストされたすべてのビルドです。 現在実行中のカーネルを削除しないでください。システムは起動できなくなります。カーネルのバージョンを3.16.0からシステムにインストールされているものに変更する必要がある場合もあります。
  • 必要に応じて、追加のSudo apt-get autoremoveを実行します。これにより、現在のカーネルで不要になった古いカーネルの残りの依存関係がすべて削除され、さらに多くのスペースが解放されます。

一致するカーネルバージョンがインストールされていないヘッダーファイルがインストールされているか、その逆です。これらのバージョンをすべてコマンドに含めるだけです。 APTは、インストールされていないために削除できないパッケージがあると文句を言いますが、それは害を与えません。

何かが失敗した場合...

  • デバイスにスペースが残っていないためにaptコマンドが失敗した場合、代わりに対応するdpkgコマンドを使用してください:Sudo dpkg --purge linux-{image,headers}-3.16.0-{xx,yy,zz}
  • linux-imageパッケージが同じバージョンのlinux-headersパッケージ(これもアンインストールする必要があります)に必要なため、dpkgコマンドがまだ機能しない場合、dpkgはそれを解決できなかった可能性があります。 dpkg -lの出力を再検討し、コマンドラインでパッケージ名のサフィックスを指定します。たとえば、私のシステムの1つでは、最終的に機能したコマンドはSudo dpkg --purge linux-{image,headers}-3.16.0-{xx,yy,zz}-generic-paeでした。
  • 他のエラーが発生した場合は、助けを求めてください。思ったよりも別の問題がある可能性があります。
8
user149408

すべてのカーネルをリストします。

dpkg --list 'linux-image*'

現在のカーネルを表示:

uname -r

すべてのカーネルをリストしますを除く現在のカーネル:

dpkg -l linux-{image,headers}-"[0-9]*" | awk '/^ii/{ print $2}' | grep -v -e `uname -r | cut -f1,2 -d"-"` | grep -e '[0-9]'

現在のカーネルがそのリストにないことを確認してください。

すべてのカーネルを削除しますを除く現在のカーネル:

dpkg -l linux-{image,headers}-"[0-9]*" | awk '/^ii/{ print $2}' | grep -v -e `uname -r | cut -f1,2 -d"-"` | grep -e '[0-9]' | xargs Sudo apt-get -y purge

他のものをクリアする:

Sudo apt-get autoremove

それでもファイルのインストール/アンインストールでブートディスク領域エラーが発生する場合は、/-ディレクトリからOLDイメージのいずれかを直接削除します。

ls -lh /boot/*-3.13.0-119*;

rm /boot/*-3.13.0-119*; 

注:イメージを削除する前に、現在のカーネルイメージを再度確認してください。

4
Hemant Thorat

私にとっては、apt-get purgedpkg --removeの両方が失敗しました。したがって、rm -fを使用して、/ bootから古いカーネルイメージをいくつか削除する必要がありました。

4
orkoden

私はすでに古いカーネルパッケージ(linux-headers ...)を削除しました

linux-headers-*はカーネルではありません。カーネルパッケージは、linux-image-*という名前のパッケージです。 linux-headers-*という名前のパッケージは、カーネルモジュールをコンパイルするための開発パッケージです。これらは/ bootディレクトリには存在せず、システムの日常的な使用には必要ありません。

/ boot doにリストしたファイルには、これらのカーネルのいくつかの古いカーネルイメージ(vmlinuz*)とコンパイルされたinitrdイメージ(initrd.img*)が含まれています。多数の古いカーネルパッケージがインストールされています。

インストール済みのカーネルを一覧表示できるはずです

aptitude search ~ilinux-image

(これはおそらくカーネルではないパッケージも返すことに注意してください)。

通常、3つ以上のカーネルをインストールする必要はありません-現在使用中のカーネルとその前のカーネル(フォールバックとして)。したがって、次のように古いものを1つずつ削除することができます。

Sudo apt-get autoremove linux-image-3.2.0-23-generic

「3.2.0-23-generic」を、削除する実際のカーネルバージョンに置き換えてください。また、linux-image-genericなどのパッケージを削除しないでください。現在実行中のカーネルを削除しないように注意する必要があります。削除しないと起動できません(Ubuntuはこれを行うことについて警告する場合としない場合があります)。

現在実行中のカーネルを見つけるには:

uname -r
2
thomasrutter

私はまだ2017年にこの質問に新しいコメントと回答がありますが、ここで非常に役立つと思う答えが1つ欠けていることを示します:

単純な日常使用のデスクトップOSとしてのUbuntuには、個別の\ bootパーティションをインストールする理由はありません。このようなものは、「一般ユーザー」には提供しません...したがって、ソリューションは\ブートパーティションとこの方法では、このような問題は発生しません

PS:回答を削除したり、承認済みの回答に追加したりできます...

1
koleygr

/ bootからいくつかのinitrd-img-xxxファイルを手動で削除すると、この問題が発生し、これらの古いバージョンが生成され続け、/bootフォルダーがいっぱいになるという問題がありました。それを修正するために、私は次のことを行いました。

  • 生成された古いカーネルバージョンを手動で削除して、スペースを解放しました。
  • テキスト設定ファイルをスーパーユーザーとして編集するので、次を端末に貼り付けます。

    Sudo gedit /etc/initramfs-tools/update-initramfs.conf
    
  • update_initramfs=yesを見つけて、update_initramfs=noに変更します。ファイルを保存して終了し、次を実行します。

    Sudo dpkg --configure -a
    

これで私の問題は解決しました。それは このブログ に基づいていました

うまくいけば、再起動するとすべてが正常になり、後でupdate-initramfs.confnoyesに戻すことができます。

1
aibrahim

非常に役立つユーティリティ ブートパーティションをクリアします

git clone https://github.com/erichs/bootnukem.git
cd bootnukem
Sudo ./install.sh

ご自身の責任で使用してください、しかしそれは私のために働いた:

Sudo bootnukem
1
Jonathan

私はこれを書きました bash script 古いカーネルを一度に選択的にパージするために:

rm kernels real size

すべてのbashコードと手順がリンクに含まれています。

0

このプロセスをもう少し使いやすくするために、以下に書いたbashスクリプトがあります。

YMMV-ミント14用に作成されました。まだBASHを学習しているので、おそらく少し不格好です。自己責任で使用してください、しかしそれは私のために働きます!

#!/bin/bash

endCol='\e[0m'
bold_red='\e[1;31m'
bold_green='\e[1;32m'
bold_yellow='\e[1;33m'

title_color='\e[0;30;47m'

function show_kernel_info {
clear
current_kernel=$(uname -r)
echo "Current ACTIVE kernel is:"
echo -e "  "$bold_yellow$current_kernel$endCol
echo "This kernel will be TOTALLY EXCLUDED from all actions in this script."
echo "Also, one fallback non-active kernel will be always left untouched."
echo ""
echo "These are the non-active kernels stored in /boot:"
count_of_old_kernels_in_boot=$(ls -o /boot/initrd* | grep -c -v "$current_kernel")
if [ $count_of_old_kernels_in_boot = 0 ]; then
  echo " * No non-active kernels found! *"
else
  ls -o /boot/initrd* | grep -v "$current_kernel"
fi
echo ""
list_of_old_kernels=$(dpkg --list | grep linux-image | awk -F' ' '{ print $2 }' | grep -v "$current_kernel" | grep -v "linux-image-generic")
current_old_kernel=$(dpkg --list | grep linux-image | awk -F' ' '{ print $2 }' | grep -v "$current_kernel" | grep -v "linux-image-generic" | head -n 1)
count_of_old_kernels_installed=$(dpkg --list | grep linux-image | awk -F' ' '{ print $2 }' | grep -v "$current_kernel" | grep -c -v "linux-image-generic")
echo "Listing of all unused kernels still installed in the system (these may not exist in /boot):"
if [ $count_of_old_kernels_installed = 0 ]; then
  echo " * No unused kernel installs found! *"
else
  dpkg --list | grep linux-image | awk -F' ' '{ print $2 }' | grep -v "$current_kernel" | grep -v "linux-image-generic"
fi
echo ""
}

function exit_script {
free_space_after=$(df -BM /boot | tail -n 1 | awk -F' ' '{ print $4 }' | tr -d M)
let freed_space=$free_space_after-$free_space_before
echo ""
echo "Results (in MB)"
echo "---------------"
echo "Free space in /boot before script was run: "$free_space_before
echo "Free space now: "$free_space_after
echo ""
echo "Amount of space freed up = "$freed_space
echo ""
echo "Press any key to exit."
read -s -n 1
echo ""
exit
}

# Main code
echo ""
echo -e $title_color" --------------------------- "$endCol
echo -e $title_color" -   Kernel Cleanup v1.0   - "$endCol
echo -e $title_color" --------------------------- "$endCol
echo ""
echo "Maximise this window for readability."
echo "Press any key to continue."
read -s -n 1
echo ""
echo "This script will remove old unused kernels, but it will Prompt you before removing each one."
echo "It will never remove the current running kernel, and will also leave one fallback kernel."
echo "It can also remove source files from /usr/src for each kernel removed."
echo "This is normally safe to do and will free up lots more space."
echo ""
echo "Do you want that done as well? (y/n, enter=yes)"
valid_input=0
while [ "$valid_input" = "0" ]; do
  read -s -n 1 YesNo_input
  if [ "$YesNo_input" = "" ]; then
    YesNo_input="y"
  fi
  case $YesNo_input
  in
    y)
    RemoveSource="y"
    valid_input=1
    ;;

    Y)
    RemoveSource="y"
    valid_input=1
    ;;

    n)
    RemoveSource="n"
    valid_input=1
    ;;

    N)
    RemoveSource="N"
    valid_input=1
    ;;
  esac
done

free_space_before=$(df -h /boot | tail -n 1 | awk -F' ' '{ print $4 }' | tr -d M)
show_kernel_info
while [ $count_of_old_kernels_in_boot -gt 1 ]; do
  # failsafe check if somehow the current kernel is about to be removed!
  if [ "$current_old_kernel" = "$current_kernel" ]; then
    echo -e $bold_red"ERROR!"$endCol" Somehow the current kernel has crept into the removal process!"
    echo "I refuse to do that! Aborting script."
    exit_script
  fi
  # failsafe check if somehow a linux-image-generic entry is about to be removed
  if [ "$current_old_kernel" = "linux-image-generic" ]; then
    echo -e $bold_red"ERROR!"$endCol" Somehow one of the linux-image-generic entries has crept into the removal process!"
    echo "I refuse to do that! Aborting script."
    exit_script
  fi
  echo "Command about to be executed is:"
  echo "  $ Sudo apt-get purge \"$current_old_kernel\""
  check_in_boot=$(echo $current_old_kernel | sed 's/linux-image/initrd.img/g')
  if [ -e /boot/$check_in_boot ]; then
    echo -e $bold_yellow"Note:"$endCol" This kernel exists in /boot but it NON-active, so it's OK to remove."
  else
    echo -e $bold_green"Totally safe to remove:"$endCol" This kernel does NOT exist in /boot."
  fi
  echo ""
  echo "Are you sure you want to remove this kernel?"
  echo "(*upper case* Y=yes / any other key will exit the script)"
  read -s -n 1 yes_no
  echo ""
  # Only entering a single upper case Y will work!
  if [ "$yes_no" != "Y" ]; then
    echo "Aborting script."
    exit_script
  fi
  echo "Removing kernel "$current_old_kernel"..."
  sleep 1
  Sudo apt-get -y purge $current_old_kernel
  if [ "$RemoveSource" = "y" ]; then
    current_old_source=$(echo $current_old_kernel | sed 's/linux-image/linux-headers/g')
    current_old_source=$(echo $current_old_source | sed 's/-generic//g')
    current_old_source=$(echo $current_old_source | sed 's/-pae//g')
    Sudo apt-get -y purge $current_old_source
  fi
  show_kernel_info
done

if [ $count_of_old_kernels_in_boot = 0 ]; then
  echo -e $bold_red"There are no NON-active kernels to remove!"$endCol
else
  echo -e $bold_red"There is only one NON-active kernel left in /boot!"$endCol
  echo "This script will not remove the last non-active kernel so that you have at least one backup kernel."
fi
echo "Aborting script."
exit_script
0
wibbynut

[AskUbuntu noobとして、評判が50になるまでコメントできないので、このために投票しないでください。]

私のサーバーもこれを行っていました。文字通り、ここで期待される答えは機能しませんでした。これらを完了するには、/ bootに作業室が必要だからです。ブートパーティションがいっぱいの場合、イメージを削除せずに突然終了します。

私のために働いた唯一のことは、現在の画像を確認し、最も古い画像ファイルを手動でSudo rm filenameすることでした(それぞれの名前に-3.16.0-がありました)。それが完了すると、Sudo apt-get autoremoveには仕事をするのに必要な小部屋がありました。そのバージョンに関連するいくつかのエラーを強調しました。たとえば、「depmod:FATAL:could not load /boot/System.map-3.16.0-30-generic:No such file or directory」ですが、これは予想されることです。

終了すると、dfは/ bootで使用中の42%を返し、再び正常であることを示します。

0
Justin Case

/ bootパーティションは少し奇妙になることがあります

カーネルファイルの削除を直接開始しないでください。

従うべき手順

  1. Linuxシステムで使用されている現在インストールされているカーネルを確認します

    uname -r

    これにより、システムに現在インストールされているカーネルイメージの名前がわかります。

  2. システムにインストールされている特定のファイル以外の余分なファイルの削除を開始します

    apt-get remove linux-image-XXXXX

  3. また、ヘッダーファイルも削除します

    apt-get remove linux-headers-XXXXX

  4. また、aptが機能しなくなった場合もあります。その場合は、/ bootに切り替えます。

    cd /boot

  5. ファイルの手動削除を開始しますが、installed one'sカーネルファイルをシステムから削除しないように注意してください。

    rm linux-image-XXXXX

    rm linux-image-extra-XXXXXX

  6. 正しいファイルを削除した後、部分インストールがあればクリーンアップします

    apt-get -f install

  7. ブートファイルが手動でクリーニングされるため、そこにある余分なファイルを削除します

    apt-get autoremove

  8. GRUBを更新する

    update-grub

  9. 最後にシステムパッケージを更新します

    apt-get update

0
user225

Aptitudeまたはsynapticには、「古いパッケージまたは手動でインストールされたパッケージ」というセクションがあります。古いLinuxパッケージがそこにあるはずです。

0
Martin Ueding

このスクリプトを/usr/local/bin/remove_kernels.shとして保存します(実行権限を与えることを忘れないでくださいSudo chmod 755 /usr/local/bin/remove_kernels.sh):

#!/bin/sh
if test $(id -u) != 0; then
 echo Error: You must be root to run this script!
 exit 1
fi
apt purge $( dpkg --list | grep -P -o "linux-image-\d\S+" | grep -v $(uname -r | grep -P -o ".+\d") )
update-grub

次に、古いカーネルをすべて削除するには、次のように入力します:Sudo remove_kernels.sh

0
Anthony Kelly