Ubuntu LTS 오래된 커 널 삭제
우 분투 의 LTS 는 말 그대로 장기간 업 데 이 트 를 위해 유지 되 기 때문에 가상 컴퓨터 설치 추천/boot 는 200 M 만 으로 는 부족 합 니 다.
셸 에서 다음 과 같은 삭제 방법 이 있 습 니 다: command line
이 어 셸 스 크 립 트 를 쓰 는 능력 을 키 우기 위해 스스로 스 크 립 트 를 썼 다.
여기 서 주의해 야 합 니 다. Liux 버 전 문제 로 인해 이 스 크 립 트 는 반드시 당신 의 것 을 사용 하지 않 아 도 됩 니 다. 그러나 전체적인 사 고 는 일치 합 니 다. 정규 표현 식 일치 부분 과 다른 세부 사항 도 있 습 니 다.
현재 커 널 이 최신 버 전이 아니라면 다시 시작 해 야 합 니 다.
다음은 코드 입 니 다. 커 널 을 삭제 하 는 것 이 이렇게 큰 일이 기 때문에 상호작용 알림 부분 에 많은 코드 가 소모 되 었 습 니 다. 진정한 정 수 는 정규 표현 식 이 고 셸 명령 과 스 크 립 트 문법 입 니 다.
많은 문제 에 부 딪 히 면 더 많이 배운다.
다시 한 번 말씀 드 리 지만, 구체 적 인 컴퓨터, 구체 적 인 시스템, 구체 적 인 분석 Linux 철학 은 '위험 에 직면 한 웃음' 입 니 다. Oops. Wrong One. 'Do it yourself' 입 니 다. Yes, that 's it. -- Linus
#!/bin/bash
# This is a shell script used to purge the unused old kernel
# to save the space for the boot
# Functions
WannaContinue(){
printf "Wanna continue?[y/n]>"
read OPT
case $OPT in
y|yes|Y|YES|Yes);;
n|no|N|NO|No) exit 0;;
*) exit 1
esac
return 0
}
WannaPurge(){
printf "Wanna purge ${1}[y/n]>"
read OPT
case $OPT in
y|yes|Y|YES|Yes) echo "ready to purge ${1}"
sudo apt-get purge "${1}"
;;
n|no|N|NO|No) ;;
*) exit 1
esac
}
ClearDeinstall(){
printf "Wanna purge ${1}[y/n]>"
read OPT
case $OPT in
y|yes|Y|YES|Yes) echo "ready to clear deinstall ${1}"
sudo dpkg -P "${1}"
;;
n|no|N|NO|No) ;;
*) exit 1
esac
return 0
}
dpkg --get-selections | grep '^linux-' | nl
WannaContinue
echo "Check the condition of ur mount"
df -h
WannaContinue
echo "This is the currently used kernel"
CUR_U_CORE=$(uname -r | grep -P -o -e '.*(?=-generic)')
echo $CUR_U_CORE
WannaContinue
echo "These are the file which may be the trash"
echo "And this sh doesn't purge all of them, u can be purged by yourself"
dpkg --get-selections | grep -P -o -e 'linux-(modules|image|headers)[^[:space:]]*' | egrep -v "(generic-hwe-|$CUR_U_CORE)" | nl
WannaContinue
echo "This is the part this shell will purge."
dpkg --get-selections | grep -P -o -e 'linux-(image|headers)[-0-9.]{3,}generic' | egrep -v "(generic-hwe-|$CUR_U_CORE)"
DEL_FILE_SET=($(dpkg --get-selections | grep -P -o -e 'linux-(image|headers)[-0-9.]{3,}generic' | egrep -v "(generic-hwe-|$CUR_U_CORE)" ))
# echo $DEL_FILE_SET
echo "The following action may cause some dangerous, u have to be really careful"
WannaContinue
if [ -n "$DEL_FILE_SET" ]; then
for FILE_DEL in "${DEL_FILE_SET[@]}"; do
WannaPurge $FILE_DEL
done
else
echo "There is nothing to purge use sudo perge"
fi
echo "Wanna exec autoremove?[y/n]>"
read OPT
case $OPT in
y|yes|YES|Y)
sudo apt autoremove
;;
n|no|NO|N) ;;
*) exit 1
esac
# dpkg --get-selections | grep -P -o -e '^linux-(modules|image|headers)[^[:space:]]*(?=\s*deinstall)' | egrep -v "(generic-hwe-|$CUR_U_CORE)"
dpkg --get-selections | grep '^linux-.*deinstall'
echo "Here are the packages are deinstall, wanna clear that>"
WannaContinue
DE_INSTL=($(dpkg --get-selections | grep -P -o -e '^linux-(modules|image|headers)[^[:space:]]*(?=\s*deinstall)' | egrep -v "(generic-hwe-|$CUR_U_CORE)"))
if [ -n "$DE_INSTL" ]; then
for DE_FILE in "${DE_INSTL[@]}"; do
ClearDeinstall "$DE_FILE"
done
else
echo "There is nothing to purge use sudo perge"
fi
sudo update-grub
dpkg --get-selections | grep '^linux-' | nl
echo "Check the condition of ur mount"
df -h
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.