/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
カーネルを使用しています。
未使用のカーネルがたくさんあります。次を使用して、最後のカーネルを除くすべてを削除します。
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]+//')")
ブートパーティションがいっぱいです。これはカーネルの更新であるため、これらのファイルはブートパーティションにコピーされるため、削除する必要があります。 ブログ投稿 は、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つのコマンドがすべてを処理してくれます。これが完全に機能することを確認しますが、インターネット上の誰も信頼しません。 :)詳細については、ブログの投稿で、コマンドの各部分が何をするのかを非常によく説明しているので、やりたいことを実行することに満足しています。
Sudo apt-get autoremove
このコマンドは、ジョブを自動的に実行しています。
Synaptic Package Managerを使用すると、古いカーネルイメージを簡単に選択して削除できます。
Synapticがまだインストールされていない場合:
Sudo apt-get install synaptic
アプリケーションを起動し、表示されたオプションを選択します。
/ bootフォルダー内のファイルに応じて、バージョンが「2.6.x」でxが31〜38のすべての「linux-」パッケージを強調表示できるはずです。
これらの各Linuxパッケージを右クリックして、[完全な削除をマーク]オプションを選択します。最後に、適用ボタンをクリックします。これにより、すべてのファイルと関連ファイルが削除されます。 /boot
フォルダーは少し整頓されているはずです。
あなたの問題の詳細な投稿をありがとう、これは私が正しい方向に進んだ。以前のカーネルファイルを保持しておくと便利です。一度にすべてのカーネルファイルを削除できますが、この投稿を確認してください。
未使用の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
これは古い質問に対する新しい答えですが、この問題(およびそれ以上)を簡単に削除する方法は、 buntu Tweak をインストールすることです。 インストールする :
Sudo add-apt-repository ppa:tualatrix/ppa
Sudo apt-get update
Sudo apt-get install ubuntu-Tweak
次に、Ubuntu Tweakを実行し、「janitor」タブに移動します。ここから3回クリックするだけです。
ただし、安全のために、最後のカーネル(決して知らない)またはよく知られている動作中のカーネルを残すほうが良いでしょう。しかし、それは簡単にカスタマイズできます。
同じツールを使用して多くのものを削除できます。サムネイルキャッシュまたはTBキャッシュを削除すると、必要に応じてシステムがそれらを再構築する必要があることに注意してください。
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
サイズを増やすべきか、何か他のことを行うべきかを知る必要があるため、この答えは受け入れません。
別の/ 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パーティションが現在ルートパーティションの左側にある場合、最初にルートパーティションを左側に移動してから拡張する必要がありますが、これには非常に長い時間がかかる可能性があるため、トラブル。
上記の回答から最善を得るために、私の実証済みのアプローチは次のとおりです。
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は、インストールされていないために削除できないパッケージがあると文句を言いますが、それは害を与えません。
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
でした。すべてのカーネルをリストします。
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*;
注:イメージを削除する前に、現在のカーネルイメージを再度確認してください。
私にとっては、apt-get purge
とdpkg --remove
の両方が失敗しました。したがって、rm -f
を使用して、/ bootから古いカーネルイメージをいくつか削除する必要がありました。
私はすでに古いカーネルパッケージ(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
私はまだ2017年にこの質問に新しいコメントと回答がありますが、ここで非常に役立つと思う答えが1つ欠けていることを示します:
単純な日常使用のデスクトップOSとしてのUbuntuには、個別の\ bootパーティションをインストールする理由はありません。このようなものは、「一般ユーザー」には提供しません...したがって、ソリューションは\ブートパーティションとこの方法では、このような問題は発生しません
PS:回答を削除したり、承認済みの回答に追加したりできます...
/ 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.conf
でno
をyes
に戻すことができます。
非常に役立つユーティリティ ブートパーティションをクリアします
git clone https://github.com/erichs/bootnukem.git
cd bootnukem
Sudo ./install.sh
ご自身の責任で使用してください、しかしそれは私のために働いた:
Sudo bootnukem
このプロセスをもう少し使いやすくするために、以下に書いた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
[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%を返し、再び正常であることを示します。
/ bootパーティションは少し奇妙になることがあります
カーネルファイルの削除を直接開始しないでください。
従うべき手順
Linuxシステムで使用されている現在インストールされているカーネルを確認します
uname -r
これにより、システムに現在インストールされているカーネルイメージの名前がわかります。
システムにインストールされている特定のファイル以外の余分なファイルの削除を開始します
apt-get remove linux-image-XXXXX
また、ヘッダーファイルも削除します
apt-get remove linux-headers-XXXXX
また、apt
が機能しなくなった場合もあります。その場合は、/ bootに切り替えます。
cd /boot
ファイルの手動削除を開始しますが、installed one's
カーネルファイルをシステムから削除しないように注意してください。
rm linux-image-XXXXX
rm linux-image-extra-XXXXXX
正しいファイルを削除した後、部分インストールがあればクリーンアップします
apt-get -f install
ブートファイルが手動でクリーニングされるため、そこにある余分なファイルを削除します
apt-get autoremove
GRUBを更新する
update-grub
最後にシステムパッケージを更新します
apt-get update
Aptitudeまたはsynapticには、「古いパッケージまたは手動でインストールされたパッケージ」というセクションがあります。古いLinuxパッケージがそこにあるはずです。
このスクリプトを/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