/ বুটে কম ডিস্কের জায়গার কারণে আপগ্রেড করা যায় না


123

আমি করার চেষ্টা করি do-release-upgrade তবে আমি পাই:

পর্যাপ্ত ফ্রি ডিস্কের জায়গা নেই

আপগ্রেড বাতিল হয়েছে। আপগ্রেডকে ডিস্ক '/ বুট' এ মোট 25.7 এম ফ্রি স্পেস দরকার। দয়া করে '/ বুট'-তে কমপক্ষে অতিরিক্ত 25.7 এম ডিস্ক স্থান মুক্ত করুন। আপনার ট্র্যাশ খালি করুন এবং 'sudo apt-get clean' ব্যবহার করে পূর্ববর্তী ইনস্টলেশনগুলির অস্থায়ী প্যাকেজগুলি সরান।

এর আউটপুট df:

                    237251272 214797108  10402504  96% /
udev                    488120         4    488116   1% /dev
tmpfs                   198676       668    198008   1% /run
none                      5120         0      5120   0% /run/lock
none                    496684         0    496684   0% /run/shm
/dev/sda1               233191    225867         0 100% /boot

বুটে কীভাবে জায়গা নেই? এর ফলাফল এখানে ls -as /boot:

total 221839
    4 .
    4 ..
  645 abi-2.6.32-34-generic-pae
  698 abi-2.6.35-30-generic-pae
  727 abi-2.6.38-12-generic-pae
  727 abi-3.0.0-12-generic-pae
  727 abi-3.0.0-13-generic-pae
  727 abi-3.0.0-14-generic-pae
  727 abi-3.0.0-15-generic-pae
  727 abi-3.0.0-16-generic-pae
  727 abi-3.0.0-17-generic-pae
  727 abi-3.0.0-19-generic-pae
  761 abi-3.0.0-20-generic-pae
  115 config-2.6.32-34-generic-pae
  128 config-2.6.35-30-generic-pae
  136 config-2.6.38-12-generic-pae
  140 config-3.0.0-12-generic-pae
  140 config-3.0.0-13-generic-pae
  140 config-3.0.0-14-generic-pae
  140 config-3.0.0-15-generic-pae
  140 config-3.0.0-16-generic-pae
  140 config-3.0.0-17-generic-pae
  140 config-3.0.0-19-generic-pae
  140 config-3.0.0-20-generic-pae
    5 grub
10773 initrd.img-2.6.32-34-generic-pae
13619 initrd.img-2.6.35-30-generic-pae
15365 initrd.img-2.6.38-12-generic-pae
16481 initrd.img-3.0.0-12-generic-pae
16487 initrd.img-3.0.0-13-generic-pae
16501 initrd.img-3.0.0-14-generic-pae
16476 initrd.img-3.0.0-15-generic-pae
16481 initrd.img-3.0.0-16-generic-pae
16478 initrd.img-3.0.0-17-generic-pae
   12 lost+found
  174 memtest86+.bin
  176 memtest86+_multiboot.bin
 1700 System.map-2.6.32-34-generic-pae
 1841 System.map-2.6.35-30-generic-pae
 2115 System.map-2.6.38-12-generic-pae
 2141 System.map-3.0.0-12-generic-pae
 2141 System.map-3.0.0-13-generic-pae
 2143 System.map-3.0.0-14-generic-pae
 2146 System.map-3.0.0-15-generic-pae
 2147 System.map-3.0.0-16-generic-pae
 2147 System.map-3.0.0-17-generic-pae
 2148 System.map-3.0.0-19-generic-pae
 2149 System.map-3.0.0-20-generic-pae
    2 vmcoreinfo-2.6.32-34-generic-pae
    2 vmcoreinfo-2.6.35-30-generic-pae
    2 vmcoreinfo-2.6.38-12-generic-pae
    2 vmcoreinfo-3.0.0-12-generic-pae
    2 vmcoreinfo-3.0.0-13-generic-pae
    2 vmcoreinfo-3.0.0-14-generic-pae
    2 vmcoreinfo-3.0.0-15-generic-pae
    2 vmcoreinfo-3.0.0-16-generic-pae
    2 vmcoreinfo-3.0.0-17-generic-pae
    2 vmcoreinfo-3.0.0-19-generic-pae
    2 vmcoreinfo-3.0.0-20-generic-pae
 4092 vmlinuz-2.6.32-34-generic-pae
 4347 vmlinuz-2.6.35-30-generic-pae
 4567 vmlinuz-2.6.38-12-generic-pae
 4675 vmlinuz-3.0.0-12-generic-pae
 4676 vmlinuz-3.0.0-13-generic-pae
 4681 vmlinuz-3.0.0-14-generic-pae
 4698 vmlinuz-3.0.0-15-generic-pae
 4700 vmlinuz-3.0.0-16-generic-pae
 4700 vmlinuz-3.0.0-17-generic-pae
 4703 vmlinuz-3.0.0-19-generic-pae
 4705 vmlinuz-3.0.0-20-generic-pae

এর আউটপুট uname -a:

 Linux kitsch 3.0.0-17-generic-pae #30-Ubuntu SMP Thu Mar 8 17:53:35 UTC 2012 i686 i686 i386 GNU/Linux

আপনার প্রশ্নের ls -l /bootএবং আউটপুট যোগ করুন uname -a
জিপ্পি

dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d'আপনার প্রশ্নের সাথে আউটপুট যুক্ত করুন ।
জিপ্পি

ls -as /bootপরিবর্তে দরকারী হতে পারে। এটি কেবলমাত্র ফাইলের আকারের অন্তর্ভুক্ত করবে।
এডিম্পেওল্ফ

এলএস-এল / বুটের আউটপুট বেশ দীর্ঘ এখানে পোস্ট তাই এখানে একটি পেস্টবিন পেস্টবিন.
ক্ল্যাম্প

5
না এটা না. এটি আপনার সমস্যার কারণ। যদি আপনার প্রশ্নটি সত্যই দীর্ঘায়িত হয় তবে কেউ এটি সম্পাদনা করবেন। পেস্টবিনের মতো বাহ্যিক পরিষেবাগুলির ব্যবহার ভবিষ্যতের রেফারেন্সের জন্য প্রশ্নের মান ভঙ্গ করবে।
জিপ্পি

উত্তর:


160

আপনার / বুট পার্টিশনটি পুরানো কার্নেলগুলি দিয়ে পূর্ণ। এটি এটি কখনও কখনও করে না, কেন এটি কখনই স্থির হয় না তা নিশ্চিত। আপনি যদি পুরানো কার্নেলগুলি সহজেই মুছে ফেলতে পারেন তবে আপনি কি জানেন যে কোন প্যাকেজগুলির মধ্যে সেগুলি এসেছে।

uname -aআপনার বর্তমান সংস্করণটি পরীক্ষা করতে প্রথমে চেক করুন ।

তারপরে নিম্নলিখিত কমান্ডটি চালান:

dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d'

এই কমান্ডটি এমন সমস্ত প্যাকেজ তালিকাভুক্ত করবে যা আপনার আর প্রয়োজন নেই। আমি সেগুলি স্বয়ংক্রিয়ভাবে অপসারণ করতে পছন্দ করি না, কার্নেলগুলি অপসারণ করার সময় আমি নিয়ন্ত্রণে থাকতে চাই। সুতরাং তালিকাভুক্ত প্রতিটি প্যাকেজের জন্য নিম্নলিখিতটি করুন:

sudo apt-get -y purge some-kernel-package

কোনো নাটক বা গীতিনাট্যের দুটি অঙ্কের মধ্যে অনুষ্ঠিত সংক্ষিপ্ত সঙ্গীতালেখ্য

এই ইন্টারমেজো আরও বিস্তারিতভাবে বর্ণনা করে যে কীভাবে কমান্ডগুলি কাজ করে এবং কোন সমস্যাটি সমাধান করার চেষ্টা করে linux-libc-dev:amd64। বেশিরভাগ ব্যবহারকারী এই অনুচ্ছেদটি এড়িয়ে যেতে পারেন।

  • dpkg -l 'linux-*' 'linux-' দিয়ে শুরু হওয়া একটি প্যাকেজ তালিকাবদ্ধ করুন
  • sed '/^ii/!d; remove all lines that do *not* start withii`
  • uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/" বর্তমান চলমান কার্নেল সংস্করণটি সন্ধান করুন
  • /'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d বর্তমান চলমান কার্নেল সংস্করণ নম্বর থাকা পাতাগুলি বাদে সমস্ত লাইন সরান
  • s/^[^ ]* [^ ]* \([^ ]*\).*/\1/ প্রতিটি লাইন তালিকার জন্য কেবল প্যাকেজের নাম
  • /[0-9]/!d সংখ্যাগুলি না থাকা লাইনগুলি সরিয়ে ফেলুন।

সমাধানের জন্য ফ্রেডেরিক নর্ড এর ইস্যু আমি মনে করি কমান্ড নিম্নরূপ সংশোধন করা যেতে পারে:

dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d;/^linux-\(headers\|image\)/!d'

এটি মূলত একটি অতিরিক্ত ফিল্টার যুক্ত করে:

  • / ^ লিনাক্স- (শিরোনাম \ | চিত্র) /! d সমস্ত লাইন মুছুন যা শুরু হয় না linux-headersবা দিয়ে শুরু করে নাlinux-image

/ কোনো নাটক বা গীতিনাট্যের দুটি অঙ্কের মধ্যে অনুষ্ঠিত সংক্ষিপ্ত সঙ্গীতালেখ্য

some-kernel-packageতালিকাভুক্ত প্যাকেজগুলির মধ্যে যেখানে প্রতিস্থাপন করা যেতে পারে। কেবল সতর্কতা অবলম্বন করুন যে আপনি কার্নেল প্যাকেজগুলি মুছে ফেলেন না যা বর্তমান ব্যবহৃত (যেমন তালিকাভুক্ত uname -a) যেমন use sudo apt-get purge -y linux-headers-3.0.0-12প্রভৃতি

এটি xargs কমান্ডটি ব্যবহার করে আরও স্বয়ংক্রিয় করা যেতে পারে, তবে আমি এটি পছন্দ করি না। এটি একটি ব্যক্তিগত জিনিস। যাইহোক, এখানে করার আদেশটি এখানে:

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

আমার /bootদেখতে দেখতে এটির মতো, একটি অতিরিক্ত কার্নেল (২.6.৩৮-১১) কেবলমাত্র ক্ষেত্রে এবং ৩.২.০-২৪ বর্তমান রয়েছে:

$ ls -l /boot
total 59388
-rw-r--r-- 1 root root   730545 Sep 13  2011 abi-2.6.38-11-generic
-rw-r--r-- 1 root root   791023 Apr 25 13:51 abi-3.2.0-24-generic
-rw-r--r-- 1 root root   130326 Sep 13  2011 config-2.6.38-11-generic
-rw-r--r-- 1 root root   140341 Apr 25 13:51 config-3.2.0-24-generic
drwxr-xr-x 3 root root     5120 May 27 17:46 grub
-rw-r--r-- 1 root root 20883146 Oct  1  2011 initrd.img-2.6.38-11-generic
-rw-r--r-- 1 root root 22474219 May  5 09:04 initrd.img-3.2.0-24-generic
drwxr-xr-x 2 root root    12288 Apr 16  2009 lost+found
-rw-r--r-- 1 root root   176764 Nov 27 11:00 memtest86+.bin
-rw-r--r-- 1 root root   178944 Nov 27 11:00 memtest86+_multiboot.bin
-rw------- 1 root root  2656297 Sep 13  2011 System.map-2.6.38-11-generic
-rw------- 1 root root  2884358 Apr 25 13:51 System.map-3.2.0-24-generic
-rw------- 1 root root     1369 Sep 13  2011 vmcoreinfo-2.6.38-11-generic
-rw------- 1 root root  4526784 Sep 13  2011 vmlinuz-2.6.38-11-generic
-rw------- 1 root root  4965776 Apr 25 13:51 vmlinuz-3.2.0-24-generic

এবং ফাইল সিস্টেমের ব্যবহার:

$ df -h /boot
Filesystem Size Used Avail Use% Mounted
/dev/sda5  228M  63M  154M  29% /boot

2
এই সমাধানটি ওজজিফ্র্যাঙ্কের উবুন্টজিনিয়াস.ওয়ার্ডপ্রেস.কম
২০১১ /

6
হ্যাঁ, কেন এটি একটি ইস্যুটি প্রশ্ন? এটি পরিচালনা করতে ব্যবহারকারীর উপর থাকা উচিত নয়।
এলিজা লিন

2
এফডাব্লুআইডাব্লু: এটি আমার জন্য লিনাক্স-লিব্যাক-ডেভ: এএমডি 64 এর সাথে মিলেছে। সুতরাং এটি খুব ভাল কিছুটা উদার হতে পারে।
ফ্রেডরিক নর্ড

4
It does that sometimes, not sure why it is never fixedউবুন্টু সিদ্ধান্ত নিয়েছে, ভাল বা খারাপ, নিয়মিত নতুন কার্নেলগুলি বিদ্যমান প্যাকেজগুলিতে আপগ্রেড করার পরিবর্তে নতুন প্যাকেজ হিসাবে সরবরাহ করার জন্য, একাধিক কার্নেল ইনস্টল করার এবং ইচ্ছামত তাদের মধ্যে পরিবর্তন করার বিকল্পটি দেওয়ার সিদ্ধান্ত নিয়েছে। আমি সম্মত হই যে এই অনুমানটি 95% লোকের সাথে খাপ খায় না যারা কেবল সর্বশেষতম কার্নেল চান (এবং নতুন বুট সমস্যার ক্ষেত্রে সম্ভবত একটি ফ্যালব্যাক), এবং যারা ইনস্টল করা কার্নেলগুলি নিজে পরিচালনা করতে চান না। সম্ভবত ভবিষ্যতে উবুন্টু এই আচরণটি পরিবর্তন করবে। আপাতত, আপনার / বুটটি বিশাল sure
থোমাস্রুটার

1
@ থোমাস্ট্রটার যদি আপনি (আমার এবং আপনার 95% লোকের মতো কথা বলছেন) মনে করেন যে এই বাগটি গুরুত্বপূর্ণ, তবে এখানে ভোট দিন: বাগস.লাঞ্চপ্যাড.এন.বুন্টু
+

46

sudo apt-get autoremove

আমার জন্য কৌশলটি করেছে, এটি সমস্ত অব্যবহৃত কার্নেল প্যাকেজগুলি সফলভাবে সাফ করেছে।


3
এটি সঠিক নয়। man apt-getঅটোরমোভ থেকে কিছু প্যাকেজের নির্ভরতা মেটাতে স্বয়ংক্রিয়ভাবে ইনস্টল হওয়া প্যাকেজগুলি অপসারণ করতে ব্যবহৃত হয় এবং এটির আর প্রয়োজন হয় না। নির্ভরতা মেটাতে কোনও কার্নেল ইনস্টল করা হবে না, সেগুলি আপগ্রেড করার সময় ইনস্টল করা হবে।
dward

5
@ নিউনওভারলোড আমি এটি পোস্ট করেছি কারণ এটি আমার জন্য কৌশলটি করেছে।
টপলেস

1
@ ডিওয়ার্ড এটি আমার জন্য কিছু জায়গা ফাঁকা করে দিয়েছে: অট্রেমোভের আগে: /dev/sda1, 240M total, 171M used, 57M free, 75% used /boot পরে: /dev/sda1, 240M total, 129M used, 98M free, 57% used /boot
স্টিফান রোগিন

6
"পর্যাপ্ত ফ্রি ডিস্কের জায়গা নেই" কথোপকথনে এই কাজটি সম্পাদন করার জন্য একটি বোতাম থাকা উচিত। এটি বিশেষত নবীন ব্যবহারকারীদেরকে সাহায্য করবে যারা কমান্ড লাইনের সাথে পরিচিত নয়।
মার্টিন আর।

1
আমার ওএসটি না ভেঙে কৌতুকটি করেছেন
রুথভিক ভাইলা

8

গৃহীত উত্তরের সমতুল্য - আরেকটি (সম্ভবত) সহজ উপায় হল ubuntu-tweakসরঞ্জামটি ইনস্টল করা , এটি এখান থেকে ডাউনলোড করা যায় । "জানিটর" এ যান, এবং পরিষ্কার করতে "ওল্ড কার্নেল" নির্বাচন করুন। এটি কয়েকটি ক্লিকে করা যেতে পারে। (১৪.০৪ ডেস্কটপে পরীক্ষিত)

এখানে চিত্র বর্ণনা লিখুন


জায়গার অভাবের সাথে পরিস্থিতি /bootসর্বদা ঘটে তাই এটি আমার প্রিয় সমাধান - সহজেই প্রয়োগ করা যায় যা এক ক্লিকে কাজটি করে with
s3m3n

2

এখানে অন্যান্য জিইউআই উত্তরের তুলনায়, এই উত্তরের সুবিধাটি হ'ল স্থানীয় উবুন্টু বাশ তৃতীয় পক্ষের অ্যাপ্লিকেশন ইনস্টল না করে ব্যবহৃত হয়।

Zenity এবং বাশ ভিত্তিক সমাধান

জেনিটি একটি তালিকা প্রক্রিয়া করতে এবং রেডিও-বোতামের সাহায্যে আইটেম নির্বাচন করার জন্য টার্মিনালে একটি দুর্দান্ত জিইউআই ইন্টারফেস সরবরাহ করে :

আরএম-কার্নেলগুলি 1

আপনার দ্বারা বুট করা বর্তমান কার্নেলটি সরানো যাবে না এবং তালিকায় অন্তর্ভুক্ত করা হবে না। রিপোর্ট করা আকারটি /bootডিরেক্টরিতে কতটা সংরক্ষণ করা হবে তা । আপনার ডিস্কে আরও সংরক্ষণ করা হয়েছে কারণ কার্নেল বাইনারিগুলি অন্যান্য অঞ্চলেও থাকে। জুলাই 27, 2017 নোট: ডিরেক্টরিগুলি /usr/src/*kernel_version*এবং /lib/modules/*kernel_version*এখন পাশাপাশি অন্তর্ভুক্ত করা হয়েছে।

সংশোধিত তারিখ ব্যবহার আবিষ্কৃত হয় statকমান্ড। আমার সিস্টেমে প্রতিবার কার্নেলটি বুট করার পরে এই তারিখটি "স্পর্শ" করা হয়েছে ( নির্দিষ্ট কার্নেল সংস্করণটি সর্বশেষ বুট করার সময় আপনি কীভাবে আবিষ্কার করবেন? ) ক্রোন রিবুট স্ক্রিপ্টটি। তবে, আপনার সিস্টেমে তারিখটি কার্নেল মুক্তির তারিখ হবে, এটি বুট করার সময় আপনি শেষবারের মতো নয়।

apt-get purge আপনাকে গর্ভপাতের সুযোগ দেয়

আপনাকে শুদ্ধ হয়ে যাওয়া সমস্ত কিছু দেখার এবং পুনরুদ্ধার করা মোট ডিস্কের স্থান (কিছুটা বিভ্রান্তিমূলক) দেখার চূড়ান্ত সুযোগ দেওয়া হবে:

The following packages will be REMOVED:
  linux-headers-4.7.1-040701* linux-headers-4.7.1-040701-generic*
  linux-headers-4.7.2-040702* linux-headers-4.7.2-040702-generic*
  linux-headers-4.7.3-040703* linux-headers-4.7.3-040703-generic*
  linux-headers-4.8.1-040801* linux-headers-4.8.1-040801-generic*
  linux-headers-4.8.10-040810* linux-headers-4.8.10-040810-generic*
  linux-headers-4.8.11-040811* linux-headers-4.8.11-040811-generic*
  linux-headers-4.8.4-040804* linux-headers-4.8.4-040804-generic*
  linux-headers-4.8.5-040805* linux-headers-4.8.5-040805-generic*
  linux-image-4.7.1-040701-generic* linux-image-4.7.2-040702-generic*
  linux-image-4.7.3-040703-generic* linux-image-4.8.1-040801-generic*
  linux-image-4.8.10-040810-generic* linux-image-4.8.11-040811-generic*
  linux-image-4.8.4-040804-generic* linux-image-4.8.5-040805-generic*
0 upgraded, 0 newly installed, 24 to remove and 2 not upgraded.
After this operation, 2,330 MB disk space will be freed.
Do you want to continue? [Y/n] 

কোড

একটি এক্সিকিউটেবল নামের ফাইল করার জন্য এই কোড কপি করুন rm-kernelsমধ্যে /usr/local/bin:

#!/bin/bash

# NAME: rm-kernels
# PATH: /usr/local/bin
# DESC: Provide zenity item list of kernels to remove

# DATE: Mar 10, 2017. Modified Jul 28, 2017.

# NOTE: Will not delete current kernel.

#       With 10 kernels on an SSD, empty cache from sudo prompt (#) using:
#       # free && sync && echo 3 > /proc/sys/vm/drop_caches && free
#       First time for `du` 34 seconds.
#       Second time for `du` 1 second.

# PARM: If any parm 1 passed use REAL kernel size, else use estimated size.
#       By default `du` is not used and estimated size is displayed.

# Must be running as sudo
if [[ $(id -u) != 0 ]]; then
    zenity --error --text "root access required. Use: sudo rm-kernels"
    exit 99
fi

OLDIFS="$IFS"
IFS="|"
choices=()

current_version=$(uname -r)

for f in /boot/vmlinuz*
do
    if [[ $f == *"$current_version"* ]]; then continue; fi # skip current version
    [[ $f =~ vmlinuz-(.*) ]]
    v=${BASH_REMATCH[1]}        # example: 4.9.21-040921-generic
    v_main="${v%-*}"            # example: 4.9.21-040921

    # Kernel size in /boot/*4.9.21-040921-generic*
    s=$(du -ch /boot/*-$v* | awk '/total/{print $1}')

    if [[ $# -ne 0 ]] ; then    # Was a parameter passed?
        if [[ -d "/usr/src/linux-headers-"$v_main ]] ; then
             # Kernel headers size in /usr/src/*4.9.21-040921*
             s2=$(du -ch --max-depth=1 /usr/src/*-$v_main* | awk '/total/{print $1}')
        else
             s2="0M"            # Linux Headers are not installed
        fi
        # Kernel image size in /lib/modules/4.9.21-040921-generic*
        s3=$(du -ch --max-depth=1 /lib/modules/$v* | awk '/total/{print $1}')
    else
        # Estimate sizof of optional headers at 125MB and size of image at 220MB
        if [[ -d "/usr/src/linux-headers-"$v_main ]] ; then
             s2="125M"
        else
             s2="0M"            # Linux Headers are not installed
        fi
        s3="220M"
    fi

    # Strip out "M" provided by human readable option of du and add 3 sizes together
    s=$(( ${s//[^0-9]*} + ${s2//[^0-9]*} + ${s3//[^0-9]*} ))
    t=$(( t + s ))
    s=$s" MB"
    d=$(date --date $(stat -c %y $f) '+%b %d %Y') # Last modified date for display
    choices=("${choices[@]}" false "$v" "$d" "$s")
done

# adjust width & height below for your screen 640x480 default for 1920x1080 HD screen
# also adjust font="14" below if blue text is too small or too large

choices=(`zenity \
        --title "rm-kernels - Total: $t MB excluding: $current_version" \
        --list \
        --separator="$IFS" \
        --checklist --multiple \
        --text '<span foreground="blue" font="14">Check box next to kernel(s) to remove</span>' \
        --width=640 \
        --height=480 \
        --column "Select" \
        --column "Kernel Version Number" \
        --column "Modified Date" \
        --column " Size " \
        "${choices[@]}"`)
IFS="$OLDIFS"

i=0
list=""
for choice in "${choices[@]}" ; do
    if [ "$i" -gt 0 ]; then list="$list- "; fi # append "-" from last loop
    ((i++))

    short_choice=$(echo $choice | cut -f1-2 -d"-")
    header_count=$(find /usr/src/linux-headers-$short_choice* -maxdepth 0 -type d | wc -l)

    # If -lowlatency and -generic are purged at same time the _all header directory
    # remains on disk for specific version with no -generic or -lowlatency below.
    if [[ $header_count -lt 3 ]]; then
        # Remove all w.x.y-zzz headers
        list="$list""linux-image-$choice- linux-headers-$short_choice"
    else
        # Remove w.x.y-zzz-flavour header only, ie -generic or -lowlatency
        list="$list""linux-image-$choice- linux-headers-$choice" 
    fi

done

if [ "$i" -gt 0 ] ; then
     apt-get purge $list
fi

দ্রষ্টব্য: আপনার ফাইল তৈরি করতে sudo অনুমতি প্রয়োজন তাই ব্যবহার করুন:

gksu gedit /usr/local/bin/rm-kernels

ফাইল এক্সিকিউটেবল ব্যবহার করতে:

sudo chmod +x /usr/local/bin/rm-kernels

দ্রষ্টব্য: এই স্ক্রিপ্টটির কোনও সার্ভারের জন্য (পাঠ্য ভিত্তিক, জিইউআই নয়) সংস্করণটি দেখুন: বুট মেনুটি পরিষ্কার করতে আমি কীভাবে পুরানো কার্নেল সংস্করণগুলি সরিয়ে ফেলব?


জুলাই 28, 2017 আপডেট

প্রতিটি কার্নেলের গণনা করা আকার নেওয়া হয়েছিল /boot/*kernel_version*যা থেকে 5 50 এমবি মোট 5 ফাইল ছিল। সূত্রে ফাইল অন্তর্ভুক্ত পরিবর্তিত হয়েছে /usr/src/*kernel_version*এবং /lib/modules/*kernel_version*। প্রতিটি কার্নেলের জন্য গণনা করা আকারটি এখন 400 এমবি। জন্য উপরের কোড rm-kernelsএবং rm-kernels-serverআপডেট করা হয়েছে। তবে উপরে বর্ণিত নমুনা পর্দা এই পরিবর্তনগুলি প্রতিফলিত করে না।

ডিফল্টটি হল লিনাক্স-শিরোলেখগুলির জন্য 125 এমবি এবং লিনাক্স-চিত্রের 220 এমবিতে ফাইলের আকারের অনুমান করা কারণ duফাইলগুলি ক্যাশে না থাকলে যন্ত্রণাদায়কভাবে ধীর হতে পারে। duস্ক্রিপ্টের কোনও প্যারামিটার ব্যবহার করে আসল আকার পেতে ।

মোট কার্নেল আকার (বর্তমান চলমান সংস্করণ বাদ দিয়ে যা সরানো যায় না) এখন শিরোনাম বারে প্রদর্শিত হবে।

প্রতিটি কার্নেলের শেষ অ্যাক্সেসের তারিখ প্রদর্শন করতে ডায়ালগ বাক্স ব্যবহৃত হয় । এই তারিখটি ব্যাকআপ বা অনুরূপ ক্রিয়াকলাপের সময় সমস্ত কার্নেলের জন্য ভর ওভাররাইট করতে পারে। ডায়ালগ বাক্সে পরিবর্তে পরিবর্তিত তারিখটি দেখায় ।


তুমি অসাধারণ! সত্যিই দুর্দান্ত ধন্যবাদ! তুমি আমাকে সুখি করেছ!
zhartaunik

0

আপনি সিনাপটিক প্যাকেজ ম্যানেজারের মাধ্যমে সহজেই কার্নেলগুলি পরিচালনা করতে পারেন। টার্মিনাল প্রম্পটে প্রথমে আপনার বর্তমান ব্যবহৃত কার্নেল-প্রকাশের নামটি জানা উচিত:

linux@linux-desktop:~$ uname -r 4.4.0-75-generic সুতরাং কমপক্ষে এই সংস্করণটি আপনার অদৃশ্য রাখা উচিত। সিনাপটিকটি খুলুন এবং নীচের মতো দ্রুত ফিল্টার প্লেসোল্ডার পূরণ করতে শুরু করুন: এখানে চিত্র বর্ণনা লিখুন এখন আপনি যে সমস্ত প্যাকেজ মুছতে চান এবং নিম্নলিখিতটি করতে চান তা করতে পারেন: সম্পূর্ণ অপসারণের জন্য চিহ্নিত করুন -> প্রয়োগ করুন । আমি কমপক্ষে একটি সর্বশেষতম কার্নেল প্যাকেজ এবং একটি পূর্ববর্তী কার্নেল রাখার পরামর্শ দেব। উদাহরণস্বরূপ, এই ক্ষেত্রে আপনি নিরাপদে লিনাক্স-ইমেজ-4.4.0-66-জেনেরিক এবং লিনাক্স-চিত্র-অতিরিক্ত -4.4.0-66-জেনেরিক থেকে মুক্তি পেতে পারেন তবে এটি 4.4.0-72 রাখা অবশ্যই ভাল এবং অবশ্যই 4.4.0-75



আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.