LINUX.ORG.RU
ФорумTalks

почистить /boot

 ,


0

1

есть ли в этих ваших гентах чистилка /boot от ненужных ядер?
например от ядер не имеющих модулей в /lib/modules
или опять пилить как отдельную херь?
ах да, гентушнеги, накидайте

file /boot/* | grep version
UPD: больше выхлопов не нать - везде интересно 1-ое и 9-ое поля
UPD2: потестите sys-kernel/kernel-cleaner-9999 из stuff оверлея
да, теперь сабж живёт здесь

★★★★

Последнее исправление: megabaks (всего исправлений: 4)

Ответ на: комментарий от megabaks

вот и выхлоп

Будут удалены следующие файлы:

/boot/gnlinuz-2.6.14-1vgnt2
/boot/gnlinuz-2.6.14-2vgnt2
/boot/gnlinuz-2.6.14-4vgnt2
/boot/gnlinuz-2.6.14-5vgnt2
/boot/gnlinuz-2.6.15-1v211rc10g
/boot/gnlinuz-2.6.15-1vs2104g
/boot/gnlinuz-2.6.15-2vs2104g
/boot/gnlinuz-2.6.15-3vs2104g

Будут удалены следующие диры:

/usr/src/linux-2.6.33-reiser4-r2
/usr/src/linux-2.6.35-reiser4-r5

-------------

это был полный выхлоп программы
все эти ядра у меня тянуться фиг знает с каких времен, это vps, и мне не хотелось его терять, хотя их /lib/modules/ я и оставил только в резервной копии. ---------
теперь выхлоп file /boot/*|grep version|awk '{print $1,$9}'

/boot/gnlinuz-2.6.14-1vgnt2: 2.6.14-1vgnt2
/boot/gnlinuz-2.6.14-2vgnt2: 2.6.14-2vgnt2
/boot/gnlinuz-2.6.14-4vgnt2: 2.6.14-4vgnt2
/boot/gnlinuz-2.6.14-5vgnt2: 2.6.14-5vgnt2
/boot/gnlinuz-2.6.15-1v211rc10g: 2.6.15-1v211rc10g
/boot/gnlinuz-2.6.15-1vs2104g: 2.6.15-1vs2104g
/boot/gnlinuz-2.6.15-2vs2104g: 2.6.15-2vs2104g
/boot/gnlinuz-2.6.15-3vs2104g: 2.6.15-3vs2104g
/boot/gnlinuz-2.6.36-9gnt5: 2.6.36-9gnt5
/boot/gnlinuz-3.3.0-1gnt0: 3.3.0-1gnt0
/boot/gnlinuz-3.3.0-2gnt0: 3.3.0-2gnt0
/boot/gnlinuz-3.3.0-3gnt0: 3.3.0-3gnt0
/boot/gnlinuz-3.3.0-4gnt0: 3.3.0-4gnt0
/boot/gnlinuz-3.3.0-5gnt0: 3.3.0-5gnt0
/boot/gnlinuz-3.5.3-1gnt0: 3.5.3-1gnt0
ls -1 /lib/modules:

2.6.36-9gnt5
3.3.0-1gnt0
3.3.0-2gnt0
3.3.0-3gnt0
3.3.0-4gnt0
3.3.0-5gnt0
3.5.3-1gnt0
-------------------
обе диры с исходниками, которые выдала программа неполноценные, там нет дерева исходников. Вроде всё охватил .

argin ★★★★★
()
Ответ на: вот и выхлоп от argin

на данный момент запилил игнор и форс

#!/bin/bash

SRC="/usr/src/linux"
KERNELS="$(file /boot/* | grep "Linux.*version")"

# config
. /home/megabaks/kernel-cleaner/kernel-cleaner.conf

#colors
green="\033[01;32m"
red="\033[01;31m"
restore="\033[00m"

############################################################################
####### kernel path and real name ##########################################
kernel_version() {
makefile="${SRC}-${1}/Makefile"
  if [ -f "${makefile}" ];then
	VERSION="$(awk '/^VERSION =/ {print $3}' "${makefile}")"
	PATCHLEVEL="$(awk '/^PATCHLEVEL =/ {print $3}' "${makefile}")"
	SUBLEVEL="$(awk '/^SUBLEVEL =/ {print $3}' "${makefile}")"
	EXTRAVERSION="$(awk '/^EXTRAVERSION =/ {print $3}' "${makefile}")"
	FULL_KERNEL="${VERSION}.${PATCHLEVEL}.${SUBLEVEL}${EXTRAVERSION}"
  fi
}

true_kernel() {
  if [ -n "${1}" ];then
	KERNEL="${1##*linux-}"
	KERNEL="${KERNEL%/}"
  fi

  if [ -d "${SRC}-${KERNEL}" ];then
	kernel_version ${KERNEL}
  else
	for kernel in `ls -d --color=never /usr/src/linux-*`;do
	  kernel="${kernel##*/linux-}"
	  kernel_version ${kernel}
	  if [ "${KERNEL}" == "${FULL_KERNEL}" ];then
		KERNEL="${kernel}"
		break
	  fi
	done
  fi
}
############################################################################

while read line;do
  FILE="`awk '{print $1}' <<< "${line}"`"
  FILE="${FILE%:}"
  version="`awk '{print $9}' <<< "${line}"`"
  true_kernel ${version}

  if ! [ -f "${SRC}-${KERNEL}/Makefile" ] && ! [ -d "/lib/modules/${version}" ];then
	REMOVE_FILES+="${FILE}\n"
  fi

done <<< "${KERNELS}"

VERSIONS="$(awk '{print $9}' <<< "${KERNELS}")"
for mod_dir in `ls -1 --color=never /lib/modules/ | grep -v "${VERSIONS}"`;do
  REMOVE_MOD_DIRS+="/lib/modules/${mod_dir}\n"
done

for src_dir in `ls -d1 --color=never ${SRC}*`;do
  [ -f "${src_dir}/Makefile" ] || REMOVE_DIRS+="${src_dir}\n"
done

############################################################################
################ ignore ####################################################
IGNORE+=" $(sed -e "s|.*--ignore||" -e "s|--.*||" <<< ${*})"

for ignor in ${IGNORE};do
  if [ -f "${ignor}" ] || [ -d "${ignor}" ] ;then
	echo -e "${green}ignoring:${restore}\t${ignor}"
	REMOVE_FILES="${REMOVE_FILES//"${ignor}"/}"
	REMOVE_DIRS="${REMOVE_DIRS//"${ignor}"/}"
	REMOVE_MOD_DIRS="${REMOVE_MOD_DIRS//"${ignor}"/}"
  else
	echo -e "${red}not found:${restore}\t${ignor}"
  fi
done
############################################################################

############################################################################
################ force #####################################################
FORCE+=" $(sed -e "s|.*--force||" -e "s|--.*||" <<< ${*})"

for force in ${FORCE};do
  if [ -f "${force}" ] || [ -d "${force}" ] ;then
	echo -e "${green}forcing:${restore}\t${force}"
	REMOVE_FILES+="${force}\n"
	REMOVE_DIRS+="${force}\n"
  else
	echo -e "${red}not found:${restore}\t${force}"
  fi
done
############################################################################

echo -e "\n${green}Будут удалены следующие файлы:${restore}"
echo -e "${REMOVE_FILES}" | sort -u | sed '/^$/d'

echo -e "\n${green}Будут удалены следующие диры:${restore}"
echo -e "${REMOVE_DIRS}" | sort -u | sed '/^$/d'
echo -e "${REMOVE_MOD_DIRS}" | sort -u | sed '/^$/d'
теперь игноры можно запиливать в конфиг в виде IGNORE=«foo bar ololo trololo»
файлы это или диры - пофиг
можно перечислять после ключиков --ignore и --force
пробуй, только если конфиг будешь пытать, поправь путь до него в начале скрипта
P.S.кто опять сломал раскраску для кода?

megabaks ★★★★
() автор топика
Последнее исправление: megabaks (всего исправлений: 4)
Ответ на: комментарий от megabaks

было

[ megabaks@desktop ] ~ $ ls -1 /boot/
3.1.5-pf
3.1.5-pf1
3.1.6-pf
3.2.1-pf
3.2.1-r2-pf
3.2.4-pf
3.2.7-pf
3.3.2-pf
3.3.6-pf
3.4.3-pf
3.4.3-pf-uksm
3.4.5-pf-uksm
3.4.6-pf-uksm
3.5.3-pf
boot
bzImage
grub
lost+found
ololo
[ megabaks@desktop ] ~ $ ls -d1 /lib/modules/*
/lib/modules/3.2.1-ololo
/lib/modules/3.2.1-trololo
/lib/modules/3.4.6-pf
/lib/modules/3.4.6-pf-megabaks
/lib/modules/3.5.3-pf
[ megabaks@desktop ] ~ $ ls -d1 /usr/src/linux-*
/usr/src/linux-2.2.2-ololo
/usr/src/linux-3.3.6-pf
/usr/src/linux-3.4.6-pf
/usr/src/linux-3.5.3-pf
[ megabaks@desktop ] ~ $
стало
[ megabaks@desktop ] ~ $ ls -1 /boot/
3.4.6-pf-uksm
3.5.3-pf
boot
grub
lost+found
ololo
[ megabaks@desktop ] ~ $ ls -d1 /lib/modules/*
/lib/modules/3.4.6-pf
/lib/modules/3.4.6-pf-megabaks
/lib/modules/3.5.3-pf
[ megabaks@desktop ] ~ $ ls -d1 /usr/src/linux-*
/usr/src/linux-3.4.6-pf
/usr/src/linux-3.5.3-pf
[ megabaks@desktop ] ~ $
по-моему годно :)

megabaks ★★★★
() автор топика
Ответ на: комментарий от megabaks

протестировал - всё вроде делает нормально, внимателен к игнор-листу

argin ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.