/ ඇරඹුම් තුළ වැඩි ඉඩක් නිදහස් කරන්නේ කෙසේද?


572

මගේ /bootකොටස බොහෝ දුරට පිරී ඇති අතර මගේ පද්ධතිය නැවත ආරම්භ කරන සෑම අවස්ථාවකම මට අනතුරු ඇඟවීමක් ලැබේ. මම දැනටමත් පැරණි කර්නල් පැකේජ (ලිනක්ස්-ශීර්ෂ ...) මකා දැමුවෙමි, ඇත්ත වශයෙන්ම මම එය කළේ ස්වයංක්‍රීය යාවත්කාලීන කිරීම් සමඟ එන නවතම කර්නල් අනුවාදයක් ස්ථාපනය කිරීමට ය.

එම නව අනුවාදය ස්ථාපනය කිරීමෙන් පසුව, කොටස නැවතත් පාහේ පිරී ඇත. ඉතින් මට තව කුමක් මකා දැමිය හැකිද? පැරණි කර්නල් රූප හා සම්බන්ධ වෙනත් ලිපිගොනු තිබේද?

මෙන්න මගේ /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කර්නලය භාවිතා කරමි .


5
සෑම උබුන්ටු ස්ථාපනයකටම වෙනම / ඇරඹුම් කොටසක් නොමැති බව සඳහන් කිරීම වටී - බොහෝ විට එය සියල්ලම එක් විශාල කොටසක් වනු ඇත. වෙනම / ඇරඹුම් කොටසක් ඇති අයට මෙම පිළිතුර අදාළ වේ. LVM හෝ "පූර්ණ තැටි" සංකේතනය භාවිතා කරන අයට වෙනම / ඇරඹුමක් අවශ්‍ය වේ, එසේ නොමැතිනම් එය විකල්පයක් විය හැකිය.
thomasrutter

4
වෙනත් කෙනෙකුට මා හා සමාන ගැටළුවක් තිබේ නම්: / ඇරඹීමට ඉඩක් නොමැති පසු ස්ථාපනය කර ඇති කර්නල් සඳහා ආරම්භක ලිපිගොනු නැවත උත්පාදනය කිරීමේදී "apt-get upgrade" අසමත් වනු ඇත. / var / lib / initramfs-tools වල අන්තර්ගතය. මෙම තත්වය තුළ කෙනෙකුට පැරණි කර්නල් apt-get භාවිතයෙන් ඉවත් කළ නොහැක, මන්ද fscking / boot කොටසට උපාංගයේ ඉඩක් නොමැති බැවිනි. කෙනෙකුට මෙය කළ හැක්කේ "dpkg -P" භාවිතයෙන් පසුව / ඇරඹුම් (නිදහස් අවකාශයට) සහ / var / lib / initramfs-tools වල අනුරූප ප්‍රවේශය පිරිසිදු කිරීමෙන් (ආරම්භක රූපය ජනනය නොවනු ඇත).
wojci

3
නිවැරදි පිළිතුරු සඳහා වැදගත් කරුණක් නම් කර්නලයේ පැරණි අනුවාදයන් අඩංගු පැකේජ ඉවත් කරන ලෙස ඔවුන් ඔබට පැවසීමයි . මෙම ගැටළුව විසඳන බොහෝ වෙබ් පිටු / ඇරඹුම් කොටසේ ඇති ගොනු කෙලින්ම ඉවත් කිරීමට නිර්දේශ කරයි ; එය ටික වේලාවක් වැඩ කළ හැකි නමුත්, අවසානයේදී ඔබට පැකේජ ඇති කර්නල් අනුවාදයන් සඳහා නැතිවූ ගොනු නැවත නිර්මාණය කරන පැකේජයක් යාවත්කාලීන කළ හැකි අතර එමඟින් ඔබට ඉඩක් නැති වනු ඇත.
kgrittn

Answers:


639

ඔබ භාවිතා නොකළ කර්නල් ගොඩක් තිබේ. අන්තිම කර්නල් හැර අනෙක් සියල්ල ඉවත් කරන්න:

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අතර පිටත ගස් කර්නල් මොඩියුල (හිමිකාරී එන්වීඩියා ධාවක සහ අථත්‍ය කොටුව වැනි) තැනීමේදී භාවිතා වේ. ගැලපෙන කර්නල් පැකේජය ( linux-image-*) ස්ථාපනය කර නොමැති නම් බොහෝ පරිශීලකයින් මෙම ශීර්ෂ පැකේජ ඉවත් කළ යුතුය .

ස්ථාපනය කර ඇති සියලුම කර්නල් ලැයිස්තුගත කිරීමට, ධාවනය කරන්න:

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

දැනට ක්‍රියාත්මක වන කර්නලය හැර, ඉවත් කළ හැකි සියලුම කර්නල් සහ ශීර්ෂ පෙන්වීමට එක් විධානයක් :

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]+//')")

18
අපූරු පිළිතුර. තවත් එක් තොරතුරක් උපකාරී වනු ඇත: ඔබ භාවිතා කරන්නේ කුමන කර්නල්දැයි ඔබට නිසැකවම කිව හැක්කේ කෙසේද? අනුමාන වශයෙන් ඔබට එය අන්තිම එක යැයි සිතිය නොහැකිය ... සංස්කරණය කරන්න : ඒ වගේම පිළිතුර පෙනේuname -a . නැවත ආරම්භ කිරීමට නව-කර්නල් එකක් ඉතිරිව නොමැති බව සහතික කිරීම වඩාත් සුදුසුය (මා කළ පරිදි; නමුත් uname -a"නවතම" කර්නලය අතර නොගැලපීම මම සටහන් කළෙමි ).
ටී.ජේ ක්‍රෝඩර්

5
redfreddyb කළා. විධාන පටවා ඇති / ආරම්භ කළ ඒවා හැර වෙනත් කර්නල් මුද්‍රණය කරයි / ඉවත් කරයි .
ලෙකන්ස්ටයින්


11
ඉතා සවිස්තරාත්මක පිළිතුරක් සහ තවමත් ක්‍රියාත්මක වේ ... සහ 2014 දී තවමත් අවශ්‍ය වේ. එය තවමත් GUI මෙවලම් මඟින් ස්වයංක්‍රීයව සිදු නොකිරීම ගැන හාස්‍යජනක ය.
allprog

6
@ byf-ferdy කර්නලය මෙහෙයුම් පද්ධතියේ අත්‍යවශ්‍ය අංගයකි, නවතම අනුවාදය කෙසේ හෝ ඔබේ දෘඩාංග සමඟ සම්පුර්ණයෙන්ම ක්‍රියා නොකරන්නේ නම්, ඔබට ආරම්භ කිරීමට වෙනත් එකක් තෝරා ගත හැකිය. හොඳ අංගයක් වනුයේ මාසයකට වඩා පැරණි ස්වයංක්‍රීයව ස්ථාපනය කර ඇති කර්නල් ඉවත් කරන දෙයක් විය හැකිය (නවතම දෙක හැර).
ලෙකන්ස්ටයින්

220

ඔබේ ඇරඹුම් කොටස පිරී ඇත. මෙය කර්නල් යාවත්කාලීනයක් බැවින්, මෙම ලිපිගොනු ඇරඹුම් කොටසට පිටපත් කරනු ඇති බැවින් ඔබට පිරිසිදු කිරීමට අවශ්‍ය වේ. එක් විධානයකින් පැරණි කර්නල් රූප ඉවත් කරන්නේ කෙසේදැයි පෙන්වන බ්ලොග් සටහනක් මෙන්න . මම ක්‍රමයේ මූලික සාරාංශයක් දෙන්නෙමි. ඔබගේ කර්නලයේ වත්මන් අනුවාදය මුද්‍රණය කිරීමට මෙම විධානය භාවිතා කරන්න:

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

දැන් අපට මෙම අන්තිම විධානයන් දෙක මෙම අශුද්ධ අවුලට ඒකාබද්ධ කිරීමෙන් අපට අවශ්‍ය සියල්ල කළ හැකිය:

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

එම එක් විධානයක් ඔබ වෙනුවෙන් සෑම දෙයක්ම බලා ගනීවි. මෙය පරිපූර්ණව ක්‍රියාත්මක වන නමුත් අන්තර්ජාලයේ කිසිවෙකු විශ්වාස නොකරන බව මම තහවුරු කරමි. :) වැඩි විස්තර සඳහා, බ්ලොග් සටහන මඟින් විධානයෙහි එක් එක් කොටස එය හරහා කියවන දේ පිළිබඳව ඉතා හොඳ පැහැදිලි කිරීමක් ලබා දෙයි, එවිට එය ඔබට අවශ්‍ය දේ කරන බවට ඔබ සෑහීමකට පත්වේ.


මෙයද linux-libc-dev: amd64
ෆ්‍රෙඩ්රික් නෝර්ඩ්

"Linux-libc-dev: amd64" අනපේක්ෂිත ලෙස ඉවත් කිරීමට හේතුව කුමක්ද?
ConfusedStack

RedFrederickNord හිස ඔසවා තැබීමට ස්තූතියි. මෙය සවි කර ඇත. සී වැඩසටහන් සම්පාදනය කිරීමේදී එය යම් දුෂ්කරතාවන්ට හේතු වනු ඇත.
dward

9
විධානය හොඳයි, නමුත් මම එය ක්‍රියාත්මක කරන විට මට යමක් ස්ථාපනය කිරීමට අවශ්‍ය වූ විට ඇති වන දෝෂයම මට ලැබෙන අතර ඇරඹුම පිරී ඇති බැවින් එය කළ නොහැක: --------------- . ස්ථාපනය කිරීමට linux-image-extra-4.2.0-30-generic: රඳා පවතින්නේ: linux-image-4.2.0-30-generic නමුත් එය ස්ථාපනය කිරීමට යන්නේ නැත
ඇලෙක්ස්

112
sudo apt-get autoremove

මෙම විධානය මඟින් කාර්යය ස්වයංක්‍රීයව සිදු කරයි.


7
නමට අනුව, apt-get AUTOremove යනු ස්වයංක්‍රීය මෙහෙයුමක් වන අතර එහිදී ඔබ සපුරා ගැනීමට උත්සාහ කරන දේ පද්ධතිය එහි “හොඳම අනුමානය” ගනී. එය සාමාන්‍ය බුද්ධි පද්ධති පරිපාලනය සඳහා ආදේශකයක් ලෙස භාවිතා නොකළ යුතුය. මෙම ප්‍රවේශයේ ඇති ගැටළුව: ඔබ (හෝ යාවත්කාලීන කිරීම) මෙම පරායත්තතා ලැයිස්තුවේ කොටසක් වන පැකේජයක් ඉවත් කරන්නේ නම්, ස්වයංක්‍රීයව ඉවත් කිරීමේ ශ්‍රිතයට පරායත්ත ලැයිස්තුවේ ඇති අනෙකුත් සියලුම පැකේජ ඉවත් කිරීමට අවශ්‍ය වන අතර, ඩෙස්ක්ටොප් එකකින් තොරව පද්ධතියක් ඔබට ඉතිරි වේ (සහ සමහර විට සම්පූර්ණයෙන්ම බිඳුණු පද්ධතියක් සමඟ වුවද).
රින්ස්වින්ඩ්

යොමුව: ඉහත අදහස් දැක්වීම සඳහා බොහෝ ප්‍රභවයන්ගෙන් 1: linuxquestions.org/questions/debian-26/…
Rinzwind

7
ලිනක්ස්-පිංතූර-ජෙනරික් ස්ථාපනය කර නව කර්නල් පැහැදිලිව ස්ථාපනය කර නොමැති නම්, මෙය පැරණි කර්නල් ඉවත් කරයි. සාමාන්‍ය බුද්ධිය නම් පද්ධතියේ කිසිදු වෙනසක් පළමුවෙන් කියවීමෙන් තොරව පිළිගැනීමයි. මෙම විධානය භාවිතා කිරීමට පෙර සාමාන්‍ය බුද්ධිය භාවිතා කර ඇත්නම් කරදරයක් නොවනු ඇත.
mchid

1
@Rinzwind - මෙම විධානය පැරණි 'linux ශීර්ෂ' ඉවත් කිරීමෙන් මගේ ඉඩ තැටිය mb 250 හිස්
Chinmaya බී

3
අවකාශයෙන් පිටත තත්වයක් පැවතීමට පෙර භාවිතා කරන්නේ නම් autoremove ක්‍රියා කරයි . කෙසේ වෙතත්, වරක් යෝග්‍යතාවයෙන් ඉවත් වී ගබ්සා කිරීම (සහ පරිශීලකයා අවසානයේ ගැටලුව දුටුවේය), ස්වයංක්‍රීයව ධාවනය කිරීම හෝ වෙනත් යෝග්‍ය පදනම් කරගත් විසඳුමක් ක්‍රියාත්මක කිරීමට ප්‍රමාද වැඩිය. ඔබට එය එසේ නම්, dpkg මත පදනම් වූ විසඳුම් වලින් එකක් උත්සාහ කරන්න.
user535733

40

පැරණි කර්නල් රූප පහසුවෙන් තෝරා ගැනීමට සහ ඉවත් කිරීමට උපාගමික පැකේජ කළමනාකරු භාවිතා කළ හැකිය. උපාගමික පැකේජ කළමණාකරුගේ තිර රුව

ඔබ දැනටමත් Synaptic ස්ථාපනය කර නොමැති නම්:

sudo apt-get install synaptic

යෙදුම ආරම්භ කර පෙන්වා ඇති විකල්ප තෝරන්න.

ඔබේ / ඇරඹුම් ෆෝල්ඩරයේ ඇති ගොනු වලට අනුව x 31 සිට 38 දක්වා වූ "2.6.x" අනුවාදය සහිත සියලුම "ලිනක්ස්" පැකේජ ඉස්මතු කිරීමට ඔබට හැකි විය යුතුය.

එම සෑම ලිනක්ස් පැකේජයක්ම දකුණු-ක්ලික් කර "සම්පූර්ණ ඉවත් කිරීම සඳහා සලකුණු කරන්න" විකල්පය තෝරන්න. අවසාන වශයෙන් අයදුම් බොත්තම ක්ලික් කරන්න. මෙය සියලුම ලිපිගොනු සහ ඊට සම්බන්ධ ඕනෑම ගොනු ඉවත් කරනු ඇත. ඔබගේ /bootෆෝල්ඩරය දැන් ටිකක් පිළිවෙලට තිබිය යුතුය.


මම ඉන්නේ 14.04. මම අතීතයේ දී විධාන රේඛාව හරහා මෙම තත්වය හසුරුවා ඇත, නමුත් මම අද මෙම ක්‍රමය අත්හදා බැලීමට තීරණය කළෙමි ... මට නම්, මගේ ලිනක්ස් රූප පිහිටා තිබුණේ ස්ථාපිත (අත්පොත) යටතේ ය, ස්ථාපනය කර නැත (දේශීය හෝ යල්පැන ඇති)
රයන්

8
ඔහ් නෑ. ඉඩක් නොමැති නිසා මට Synaptic ස්ථාපනය කළ නොහැක /boot!
ජෝන් මැක්ගී

@ ජෝන් එම්සීජී එෆ්එස්ක් සහ වෙන්වූ ඔබ වෙනුවෙන් එම ගැටළුව විසඳිය යුතුය.
FlipMcF

25

ඔබගේ ගැටලුව පිළිබඳ සවිස්තරාත්මක පෝස්ටයට ස්තූතියි, මෙය මා නිවැරදි දිශාවට ගමන් කළේය. පෙර කර්නල් ලිපිගොනු තබා ගැනීම ප්‍රයෝජනවත් වුවද, ඔබට ඒවා සියල්ලම එකවර ඉවත් කළ හැකිය, මෙම ලිපිය පරීක්ෂා කරන්න:
භාවිතයට නොගත් සියලුම ලිනක්ස් කර්නල් ශීර්ෂයන්, රූප සහ මොඩියුල ඉවත් කරන්නේ කෙසේද?

විධාන රේඛාව හරහා සිදු කරන ලදි. ඔබ මෙය දුරස්ථ භාවිතයෙන් කරන්නේ නම් ටර්මිනල් සැසියක් විවෘත කර එය ඇලවීම සඳහා 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

23

මෙය පැරණි ප්‍රශ්නයකට නව පිළිතුරකි, නමුත් මෙය පිරිසිදු කිරීමට පහසු ක්‍රමයක් (සහ තවත්) උබුන්ටු ට්වීක් ස්ථාපනය කිරීමයි. එය ස්ථාපනය කිරීමට :

sudo add-apt-repository ppa:tualatrix/ppa
sudo apt-get update
sudo apt-get install ubuntu-tweak

එවිට ඔබට උබුන්ටු ට්වීක් ධාවනය කළ හැකිය, "ජැනිටර්" ටැබයට යන්න, මෙතැන් සිට එය ක්ලික් කිරීම් තුනක කාරණයකි:

පැරණි කර්නල් සඳහා උබුන්ටු tweak janitor

ආරක්ෂාව සඳහා අවසාන කර්නලය (ඔබ කවදාවත් නොදන්නා) හෝ ප්‍රසිද්ධ වැඩ කරන කර්නලයක් තැබීම වඩා හොඳය; නමුත් එය පහසුවෙන් රිසිකරණය කළ හැකිය.

ඔබට බොහෝ දේ පිරිසිදු කිරීමට එකම මෙවලම භාවිතා කළ හැකිය --- මතක තබා ගන්න ඔබ සිඟිති-හැඹිලිය හෝ ක්ෂය රෝග හැඹිලිය පිරිසිදු කරන්නේ නම් පද්ධතියට ඒවා අවශ්‍ය නම් ඒවා නැවත ගොඩනඟා ගත යුතු බව මතක තබා ගන්න.


මම උබුන්ටු tweak ස්ථාපනය කිරීමට උත්සාහ කළ අතර ගබඩාවේ වෙබ් අඩවියටද ගියෙමි. එය පවසන්නේ එය 13.10 සහ ඊට පෙර පමණක් බවයි. ඔබට 15.04 සඳහා යාවත්කාලීන කළ අනුවාදයක් තිබේද?
JayCouture.com

C JayCouture.com වෙබ් අඩවියේ අනුවාදය 14.04 සඳහා වේ (“13.10 සහ ඊට පෙර” යනු පැරණි නිකුතු සඳහා සබැඳියකි). 14.10 හෝ 15.04 සඳහා අනුවාදයක් තිබේ නම් මම නොසලකා හරිමි.
රමානෝ

20

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ප්‍රමාණය වැඩි කළ යුතුද නැතිනම් වෙනත් දෙයක් කළ යුතුද යන්න දැන සිටිය යුතුය .


ඔබට මුලින් වෙනම / ඇරඹුම් කොටසක් නොතිබිය යුතුය, නැතහොත් 100mb ඉතා කුඩා බැවින් ඔබ එහි ප්‍රමාණය වැඩි කළ යුතුය.
psusi

1
ස්තූතියි, මම මෙය හරහා මකා sudo dpkg --remove linux-headers-3.5.0-28*
දමමි

2
හා sudo dpkg --remove linux-image-3.5.0-28*ප්රතිරූපය සඳහා, හරහා පරීක්ෂාdf -h
TiloBunt

ස්තූතියි, මෙය මටත් සේවය කළා. මම පැරණි කර්නල් කිහිපයක් ඉවත් කර ( මම දැනට භාවිතා කරන එක නොවේ ) පසුව එය කළෙමි apt-get -f install. apt-get autoremoveඅනවශ්‍ය ලෙස වෙනත් ඒවා ඉවත් කිරීමට පසුව කිරීමට අමතක නොකරන්න .
යජෝ

15

ඔබට වෙනම / ඇරඹුම් කොටසක් භාවිතා කිරීම නැවැත්විය හැකිය, එවිට ඔබට එතරම් සීමිත ඉඩක් එහි නොමැත. මෙය සිදු කිරීම සඳහා, කොටස ඉවත් කරන්න, ඉන්පසු එය වෙනත් තැනකට සවි කර එහි ඇති සියලුම ගොනු ඔබේ මූල කොටසේ / ඇරඹුම් නාමාවලියට පිටපත් කරන්න, ඉන්පසු / 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 භාවිතා කළ හැකි අතර, එම අවකාශය භාවිතා කිරීම සඳහා මූල කොටස දිගු කළ හැකිය. මූල කොටස දීර් extend කිරීම සඳහා ඔබට livecd වෙතින් ආරම්භ කිරීමට අවශ්‍ය වන අතර නිදහස් අවකාශය වහාම දකුණට විය යුතුය. / ඇරඹුම් කොටස දැනට මූල කොටසේ වමට නම්, ඔබට මුලින්ම මූල කොටස වමට ගෙනයාමට අවශ්‍ය වනු ඇත, පසුව එය දිගු කරන්න, නමුත් මේ සඳහා ඉතා දිගු කාලයක් ගතවනු ඇත, එබැවින් එය වටින්නේ නැත කරදර.


7
සෑම දෙයක්ම නමුත් / ඇරඹීම සංකේතනය කර ඇති බැවින් මගේ ප්‍රධාන කොටසට ගෙනයාම / ආරම්භ කිරීම මට විසඳුමක් නොවේ. මගේ ප්‍රශ්නයෙන් ඔබට එය දැනගත නොහැකි විය, සමාවෙන්න.
user6722

ඇරඹුම් පරිමාවේ කිසිදු ඉඩක් නොමැති නිසා ඉහත විසඳුම් ක්‍රියාත්මක නොවන්නේ නම් හෝ ඔබට නැවත නැවතත් “අවකාශයෙන් බැහැර” ගැටලුවක් තිබේ නම් මෙය හොඳ විසඳුමකි. සමහර විට / ඇරඹුම් කොටසක් තිබිය යුත්තේ මන්දැයි කරුණාකර පළමුව කියවන්න: ( help.ubuntu.com/community/DiskSpace )
svandragt

vsvandragt, මූලික වශයෙන් මේ දිනවල / ඇරඹුම් කොටසක් අවශ්‍ය වීමට හේතුවක් නොමැත. ඉතිරිව ඇති එකම දෙය නම් ඔබේ ජෛව විද්‍යාව කැඩී ඇති අතර සම්පූර්ණ තැටිය නොපෙනේ නම් සහ පසුගිය දශකය තුළ සාදන ලද ඕනෑම යන්ත්‍රයකට එවැනි සීමාවක් නොමැත. වැටලීම් හෝ එල්වීඑම් භාවිතා කිරීම වැනි වෙනත් පැරණි අවස්ථා දැන් නිසි ලෙස හසුරුවනු ලබන්නේ grub2 විසිනි.
psusi

වෙනම ඇරඹුම් කොටසක් තිබීමට හේතු කිහිපයක් තිබේ. නමුත් ප්‍රතිලාභ වැඩි කිරීම සංකීර්ණ සැකසුම වටී යැයි මට විශ්වාස නැත. 1. ext2 හරහා වේගවත් ආරම්භයකින් මෙහෙයුම් පද්ධතියට ප්‍රයෝජන ගත හැකිය. 2. RO ලෙස සවි කිරීම / ආරම්භ කිරීම මඟින් ආරක්ෂාව වැඩි කළ හැකිය. (rootkits, ආදිය), හෝ OS ධාවන වේලාවේදී ගණන් නොගනී. 3. grub (1) හට ext4 සමඟ තවමත් ගැටළු කිහිපයක් තිබේ. 4. lvm (grubv1) ධාවනය සඳහා අවශ්‍ය වේ. සුපුරුදු උබුන්ටු සැකසුම සඳහා මෙය අදාළ නොවේ.
ඩේවිඩ් කාහිල්

lsblkකුමන
දම් පාට

11

ඉහත පිළිතුරු වලින් උපරිම ප්‍රයෝජන ගනිමින්, මගේ උත්සාහ කළ සහ සත්‍ය ප්‍රවේශය මෙයයි:

  • 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දැනට පවතින ඒවාට තවදුරටත් අවශ්‍ය නොවන පැරණි කර්නල්වල ඉතිරිව ඇති පරායත්තයන් ඉවත් කර තවත් ඉඩ ප්‍රමාණයක් නිදහස් කරයි.

කර්නල් අනුවාදයන් නොගැලපීමකින් තොරව ඔබට ශීර්ෂ ලිපිගොනු තිබිය හැකිය, නැතහොත් අනෙක් අතට command මෙම සියලු අනුවාදයන් විධානයට ඇතුළත් කරන්න. සමහර පැකේජ ස්ථාපනය කර නොමැති නිසා ඒවා ඉවත් කළ නොහැකි බවට APT පැමිණිලි කරනු ඇත, නමුත් එයින් කිසිදු හානියක් සිදු නොවේ.

යමක් අසමත් වුවහොත් ...

  • උපාංගයේ දෝෂයක් නොමැති නිසා apt විධානය අසමත් වුවහොත් , ඒ වෙනුවට අනුරූප dpkg විධානය භාවිතා කරන්න : sudo dpkg --purge linux-{image,headers}-3.16.0-{xx,yy,zz}.
  • එකම අනුවාදයේ (ඔබටත් අස්ථාපනය කිරීමට අවශ්‍ය) linux-imageපැකේජ අවශ්‍ය බැවින් dpkg විධානය තවමත් ක්‍රියාත්මක නොවන්නේ නම්, එය linux-headersවිසඳීමට dpkg අසමත් වන්නට ඇත. dpkg -lවිධාන රේඛාවේ ඕනෑම පැකේජයක නාම උපසර්ගයක් ප්‍රතිදානය නැවත පරීක්ෂා කරන්න . උදාහරණයක් ලෙස, මගේ එක් පද්ධතියක අවසානයේ ක්‍රියාත්මක වූ විධානය විය sudo dpkg --purge linux-{image,headers}-3.16.0-{xx,yy,zz}-generic-pae.
  • ඔබට වෙනත් දෝෂයක් ඇත්නම්, උපකාරය පතන්න you ඔබ සිතුවාට වඩා වෙනස් ගැටළුවක් ඔබට තිබිය හැකිය.

@ user535733 සුපුරුදු නඩුව (මම අවුලක් තබා අවම වශයෙන් එකක්) තවමත් අප අතර නැති බවයි සමහර ඉඩ මත /bootපමණක් නොව, තවත් කර්නලය සඳහා ප්රමාණවත්. එවැනි අවස්ථාවන්හිදී ඉහත කරුණු හොඳින් ක්‍රියාත්මක වී ඇත. නමුත් අදාළ dpkgවිධානය එකතු කිරීමට නිදහස් වන්න . සඳහා පරිදි purge, නෑ, එය එසේ නොවේ 'බලය-ඉවත්' කාරුණික ය. එය කරන්නේ, වෙනස් ආකාරයකින් remove, එය වින්‍යාස ගොනු ද මකා දමයි. තාක් කල් kernel ඇසුරුම් කිසිදු config ගොනු ස්ථාපනය ලෙස / සිට removeහා purgekernel ඇසුරුම් සඳහා එසේ කරනු ඇත.
user149408

අනුරූප dpkg විධානය සමඟ සිව්වන උණ්ඩය එක් කරන ලදි.
user535733

7

සියලුම කර්නල් ලැයිස්තුගත කරන්න:

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*; 

සටහන: කිසියම් රූපයක් මකා දැමීමට පෙර කරුණාකර වත්මන් කර්නල් රූපය නැවත සමාලෝචනය කරන්න.

එය තවමත් කිසියම් දෝෂයක් විසි කරන්නේ නම් අනවශ්‍ය කර්නල් ඉවත් කිරීමට පහත විධානයන් නැවත කරන්න,

sudo dpkg --purge linux-image-X.X.X-XXX-generic linux-image-extra-X.X.X-XXX-generic linux-signed-image-X.X.X-XXX-generic
sudo dpkg --purge linux-image-Y.Y.Y-YYY-generic linux-image-extra-Y.Y.Y-YYY-generic linux-signed-image-Y.Y.Y-YYY-generic

sudo apt-get -f install

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

5

මට දෙකම සඳහා apt-get purgeසහ dpkg --removeඅසාර්ථක දෙකම. ඒ නිසා මට පැරණි කර්නල් පින්තූර කිහිපයක් / ඇරඹුම් වලින් මකා දැමීමට සිදු විය rm -f.


4
පැකේජ ඉවත් කිරීමට මෙය හොඳ ක්‍රමයක් නොවේ. නිවැරදි පිළිතුර ඉවත් කිරීම අසාර්ථක වූයේ මන්ද යන්න පිළිබඳව මෙම පිළිතුර නිශ්චිතවම නිශ්චිතව දක්වා නොමැති අතර, එම තොරතුරු ලබා දී ඇත්දැයි මට විශ්වාසයි (ඇත්ත වශයෙන්ම වෙනම ප්‍රශ්නයකින්) අපට උත්සාහ කිරීමට සහ ගැටලුවේ හේතුව සොයා ගැනීමට හැකි වනු ඇත.
thomasrutter

2
/bootබෙදීම පිරී ඇති බැවින් එය අසාර්ථක වූ බව මම විශ්වාස කරමි . මෙම විධානයන් පළමුව කර්නලය මෑත කාලීනව උත්ශ්‍රේණිගත කිරීමට උත්සාහ කරන No space left on deviceඅතර උත්පාදනය කරන අතරතුර බිඳ වැටේinitrd.img
vp_arth

1
අනතුරු ඇඟවීම, ලිපිගොනු කෙලින්ම ඉවත් කිරීම ගැටළු වලට තුඩු දිය හැකිය, මන්ද ලිනක්ස්-ෆර්ම්වෙයාර් පැකේජය යාවත්කාලීන කිරීමෙන් පැකේජ තොරතුරු මත පදනම්ව ස්ථාපනය කර ඇතැයි සිතන සෑම අනුවාදයක් සඳහාම initrd.img ගොනුව ප්‍රතිනිර්මාණය කළ හැකිය. බලන්න: askubuntu.com/questions/865577/…
kgrittn

2
ස්තූතියි, වෙන කිසිවක් ක්‍රියාත්මක නොවන විට මෙය ජීවිතාරක්ෂක අවසාන විසඳුමයි.
ජෙෆ් පැකට්

2

මම දැනටමත් පැරණි කර්නල් පැකේජ මකා දැමුවෙමි (ලිනක්ස්-ශීර්ෂ ...)

linux-headers-*කර්නල් නොවේ. කර්නල් පැකේජ නම් කර linux-image-*ඇත. නම් කර linux-headers-*ඇත්තේ කර්නල් මොඩියුල සම්පාදනය කිරීම සඳහා වන සංවර්ධන පැකේජයන් ය: ඒවා / ඇරඹුම් නාමාවලියෙහි ජීවත් නොවන අතර ඔබේ පද්ධතියේ එදිනෙදා භාවිතය සඳහා අවශ්‍ය නොවේ.

ඔබ විසින් / boot ලැයිස්තු ගත කර ඇති ගොනු කරන්නේ පැරණි කර්නලය රූප කිහිපයක් ඇතුළත් වේ ( vmlinuz*) සහ initrd පිළිඹුවන් ගෙන් (සම්පාදනය initrd.img*ඔබ තවමත් ස්ථාපනය පැරණි kernel ඇසුරුම් ගොඩක් ඇති බවට ඉඟි වන අය කර්නල්, සඳහා).

ඔබගේ ස්ථාපිත කර්නල් සමඟ ලැයිස්තු ගත කිරීමට ඔබට හැකි විය යුතුය

aptitude search ~ilinux-image

(මෙය බොහෝ විට කර්නල් නොවන පැකේජ ද ලබා දෙන බව සලකන්න).

සාමාන්‍යයෙන් කර්නල් දෙකකට වඩා ස්ථාපනය කිරීම අවශ්‍ය නොවේ - දැනට භාවිතයේ පවතින සහ ඊට පෙර තිබූ (පසුබෑමක් ලෙස). එබැවින් ඔබට පැරණි ඒවා එකින් එක ඉවත් කිරීම ආරම්භ කළ හැකිය:

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

ඔබට ඉවත් කිරීමට අවශ්‍ය සත්‍ය කර්නල් අනුවාදය සමඟ "3.2.0-23-generic" ආදේශ කිරීමට වග බලා ගන්න! එසේම, වැනි පැකේජ ඉවත් නොකරන්න linux-image-generic. දැනට ක්‍රියාත්මක වන කර්නලය ඉවත් නොකිරීමට ඔබ සැබවින්ම සැලකිලිමත් විය යුතුය, නැතහොත් ඔබට ආරම්භ කිරීමට නොහැකි වනු ඇත (උබුන්ටු මෙය කිරීම ගැන ඔබට අනතුරු අඟවනු ඇත හෝ නොකළ හැකිය).

දැනට ක්‍රියාත්මක වන කර්නලය ඔබට සොයාගත හැකිය:

uname -r

1

මම initrd-img-xxx/ බූට් එකෙන් සමහර ලිපිගොනු අතින් ඉවත් කළ නිසා මට මෙම ගැටළුව ඇති වූ අතර මෙම පැරණි අනුවාදයන් ජනනය කර /bootෆෝල්ඩරය පුරවා ගැනීම මට ගැටලුවක් විය . එය නිවැරදි කිරීම සඳහා මම පහත සඳහන් දේ අනුගමනය කළෙමි.

  • මම ජනනය කළ පැරණි කර්නල් අනුවාදය අතින් ඉවත් කළෙමි.
  • ඔබ පෙළ වින්‍යාස ගොනුවක් සුපර් යූසර් ලෙස සංස්කරණය කරනු ඇත, එබැවින් පහත සඳහන් කරුණු පර්යන්තයකට අලවන්න:

    sudo gedit /etc/initramfs-tools/update-initramfs.conf
    
  • රේඛාව සොයාගෙන update_initramfs=yesඑය වෙනස් කරන්න update_initramfs=no. ගොනුව සුරකින්න සහ පිටවන්න, ඉන්පසු ධාවනය කරන්න:

    sudo dpkg --configure -a
    

ඒකෙන් මගේ ප්‍රශ්නය විසඳුණා. එය මෙම බ්ලොග් අඩවිය මත පදනම් විය

ඔබ නැවත ආරම්භ කරන විට, බලාපොරොත්තු, හැම දෙයක්ම සුදුසු විය යුතුය, පසුව ඔබ වෙනස් කරන්න උත්සාහ කරන්න පුළුවන් noආපසු yesදී update-initramfs.conf.


1

මම තවමත් 2017 දී මෙම ප්‍රශ්නයට නව අදහස් සහ පිළිතුරු ඇති නමුත් මෙහි ඉතා ප්‍රයෝජනවත් යැයි මා සිතන එක් පිළිතුරක් මග හැරී ඇත:

සරල එදිනෙදා භාවිතයේ ඩෙස්ක්ටොප් මෙහෙයුම් පද්ධතියක් ලෙස උබුන්ටු වෙනම \ ඇරඹුම් කොටස් සමඟ ස්ථාපනය කිරීමට කිසිදු හේතුවක් නොමැති අතර මෙවැනි දෙයක් "පොදු පරිශීලකයෙකුට" යමක් ලබා නොදෙනු ඇත ... එබැවින් විසඳුමක් \ ඇරඹුම් කොටස් නොමැතිව නැවුම් ස්ථාපනයකි. ඔබට කිසි විටෙකත් එවැනි ගැටලුවක් ඇති නොවනු ඇත

PS: පිළිගත් පිළිතුරට මගේ පිළිතුර මකා දැමිය හැකිය හෝ එකතු කළ හැකිය ... (මම හිතන්නේ එය සමහර අයට මේ ආකාරයෙන් උපකාරී වනු ඇත)



0

යෝග්‍යතාවයේ හෝ උපාගමයේ “පැරණි හෝ අතින් ස්ථාපනය කර ඇති ඇසුරුම්” ඇත. එහි පැරණි ලිනක්ස් පැකේජ තිබිය යුතුය.


0

මා විසින් ලියන ලද බාෂ් ස්ක්‍රිප්ට් එකක් ඇත, එමඟින් ක්‍රියාවලිය ටිකක් පරිශීලක-හිතකාමී වේ.

වයිඑම්එම්වී - එය මින්ට් 14 සඳහා නිපදවා ඇත. තවමත් බාෂ් ඉගෙනීම නිසා එය තරමක් අවුල් සහගතය. තමන්ගේම අවදානමකින් භාවිතා කරන්න, නමුත් එය මට වැඩ කරයි!

#!/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

[AskUbuntu noob ලෙස මට කීර්තිය = 50 වන තෙක් අදහස් දැක්විය නොහැක. එබැවින් මේ නිසා ඡන්දය ප්‍රකාශ නොකරන්න.]

මගේ සේවාදායකයාද මෙය කරමින් සිටියේය. වචනාර්ථයෙන් මෙහි අපේක්ෂිත පිළිතුරු කිසිවක් ක්‍රියාත්මක නොවූ බැවින් මේවා සම්පූර්ණ කිරීම සඳහා වැඩකරන කාමරයක් / ඇරඹුමක් අවශ්‍ය වේ. ඇරඹුම් කොටස පිරී තිබේ නම්, එය කිසිදු පින්තූරයක් මකා දැමීමෙන් තොරව හදිසියේම අවසන් වේ.

මට වැඩ කළ එකම දෙය නම් වර්තමාන රූපය සමාලෝචනය කිරීම, පසුව sudo rm filenameපැරණිතම අනුරූප ලිපිගොනු සඳහා අතින් කිරීම (සෑම කෙනෙකුම ඔවුන්ගේ නම් වලින් -3.16.0-30 ). එය අවසන් වූ පසු, sudo apt-get autoremoveඑහි කාර්යය කිරීමට අවශ්‍ය විග්ල් කාමරය තිබුනි. එම අනුවාදය හා සම්බන්ධ සමහර දෝෂයන් එය ඉස්මතු කර දැක්වීය, උදාහරණයක් ලෙස: "depmod: FATAL: /boot/System.map-3.16.0-30-generic: එවැනි ගොනුවක් හෝ නාමාවලියක් නොමැත" නමුත් එය අපේක්ෂා කළ යුතුය.

අවසන් වූ පසු, එය dfනැවත සෞඛ්‍ය සම්පන්න බව දැක්වීමට 42% ක් / ඇරඹුම් සඳහා භාවිතා කර ඇත.


1
ඔබ සොයන පශ්චාත් askubuntu.com/questions/171209/...
muru

ur මුරු හොඳයි, ඔව් ... මුල් පෝස්ටරයටද මෙම උපදෙස් අවශ්‍ය බව මම යෝජනා කරමි. / ඇරඹුම් සම්පුර්ණ වූ පසු, එය නිවැරදි කිරීමට උත්සාහ කරන මෙම ස්ක්‍රිප්ට් අනුවාදයන් ද අසාර්ථක වේ.
ජස්ටින් කේස්

හොඳයි, සමාන ගැටළු දෙකක් තිබේ: අ) ඔබේ තැටිය පිරී ඇති බවට පද්ධතිය අනතුරු අඟවන නමුත් apt-getඉදිරියට යාමට ප්‍රමාණවත් ඉඩක් ඇති අතර, ආ), apt-getතැටිය පිරී ඇති නිසා අසමත් වන තැන . ඒක තමයි අනිත් පෝස්ට් එක.
මුරු


0

මෙම ස්ක්‍රිප්ට් එක ලෙස සුරකින්න /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

/ ඇරඹුම් කොටස සමහර විට ටිකක් අමුතු විය හැකිය

කර්නල් ගොනු මකා දැමීමට කෙලින්ම ආරම්භ නොකරන්න.

අනුගමනය කළ යුතු පියවර

  1. ලිනක්ස් පද්ධතිය විසින් දැනට ස්ථාපනය කර ඇති කර්නලය භාවිතා කරන්නේදැයි පරීක්ෂා කරන්න

    uname -r

    මෙය පද්ධතියේ දැනට ස්ථාපනය කර ඇති කර්නල් රූපයේ නම ලබා දෙනු ඇත

  2. දැන් ඔබේ පද්ධතියේ ස්ථාපනය කර ඇති එක් විශේෂිත එකක් හැර අමතර ලිපිගොනු මකා දැමීමට පටන් ගන්න

    apt-get remove linux-image-XXXXX

  3. ශීර්ෂ ගොනුවද ඉවත් කරන්න

    apt-get remove linux-headers-XXXXX

  4. එසේම aptවැඩ කිරීම නැවැත්වූ කොන්දේසියක් තිබිය හැකිය , එවැනි අවස්ථාවකදී / ඇරඹුම් වෙත මාරු වන්න

    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


-1

ඔබට වඩා භාවිතා නොකරන ගොනු ඉවත් කළ නොහැකි අතර ඔබ එම උපාංගය මත අනෙකුත් කොටස / හෝ හිස් ඉඩ තිබේ නම්, ඔබ විසින් / boot කොටස ප්රථිප්රමාණය හැකි නම් දෙබෑ / gparted . (එය ස්ථාපන මාධ්‍යවල ද ඇතුළත් වේ.)

අවවාදයයි : කොටස නැවත වෙනස් කිරීම භයානක මෙහෙයුමකි, එය කිරීමට පෙර ඔබේ වැදගත් දත්ත වෙනත් මාධ්‍යවල සුරකින්න!


කුඩා වෙනම / ඇරඹුම් කොටස් වලින් පීඩා විඳින බොහෝ දෙනා ස්ථාපනය කිරීමෙන් පසු 'සම්පූර්ණ තැටි සංකේතනය' තෝරා ගත් අතර ඒ සඳහා LVM අවශ්‍ය වේ. මෙම විසඳුම එම පරිශීලකයින්ට විසඳීමට වඩා ගැටලු ඇති කරන බව පෙනේ.
user535733
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.