Strona główna Ubuntu C++ Hardware HTML i javascript Java Software SQL

Awk - usuwanie niechcianych wpisów z GRUB.

Dodano: 2011-03-25

Niechciane wpisy w menu programu rozruchowego GRUB, mogą zaciemnić możliwości wyboru uruchomiania różnych systemów operacyjnych lub też narzędzi. Można je usunąć edytując plik zawierający listę opcji jaką można zobaczyć przy starcie systemu, powinien on się znajdować w /boot/grub/grub.cfg.

Najpierw trzeba odnaleźć interesujące wpisy, by następnie usunąć je począwszy od słowa kluczowego menuentry do znaku (wraz) zamknięcia bloku tzn. "}".

Poniższy przykład skryptu usuwa wpisy starszych wersji jądra systemu z menu GRUB.

Drukuj Zaznacz kod
#!/bin/bash

echo Skrypt usuwa wszystkie stare wersje obrazow z GRUP.
read

cd /boot/grub

uname -r | awk '{
	print "Aktualna wersja jadra: "$0;
	print substr($0, 0, index($0, "-generic")-1) > "new_kernel.info";
}'

cp grub.cfg grub.cfg.copy

awk 'BEGIN{
	if (getline < "new_kernel.info" > 0){
		ver = $0;
		print $0;
	} else {
		print "";
		print "**********************************";
		print "Plik z wersja jadra nie istnije!!!";
		print "**********************************";
		exit;
	}
}{
	if ((index($0, "menuentry") != 0) && (index($0, "Ubuntu")) && (index($0, ver) == 0)){
		print $0;
		while ($0 != "}"){
			getline;
			print $0;
		}
	} else
		print $0 >> "grub.cfg.temp";
}' grub.cfg

mv grub.cfg.temp grub.cfg
 

Skryp usuwający obrazy starszych wersji jądra systemu delete old kernel.