আমি / বুটে আরও স্থান কীভাবে খালি করব?


563

আমার /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
এটি উল্লেখ করার মতো যে প্রতিটি উবুন্টু ইনস্টলেশন পৃথক / বুট পার্টিশন রাখে না - প্রায়শই এটি কেবলমাত্র একটি বড় পার্টিশন হবে। এই উত্তরটি তাদের জন্য প্রযোজ্য যাদের পৃথক / বুট বিভাজন রয়েছে। যারা এলভিএম বা "ফুল ডিস্ক" এনক্রিপশন ব্যবহার করে তাদের পৃথক / বুট প্রয়োজন, অন্যথায় এটি alচ্ছিক হতে পারে।
থোমাসরুটটার

4
অন্য কারও যদি আমার মতো একই সমস্যা থাকে: / বুটের কোনও স্থান অবশিষ্ট না থাকার পরে "অ্যাপট-গিগ আপগ্রেড" ব্যর্থ হবে যখন ইনস্টল করা কার্নেলগুলির জন্য আরআরডি ফাইলগুলি পুনরায় উত্পন্ন করার সময় অথবা আপডেট-থ্রিমফ্রিপ্ট স্ক্রিপ্ট বিশ্বাস করে যে পরীক্ষা করে ইনস্টল করা আছে / var / lib / initramfs- সরঞ্জামের সামগ্রী। এই পরিস্থিতিতে কেউ এ্যাপ-গেট ব্যবহার করে পুরানো কার্নেলগুলি সরাতে পারে না কারণ ডিভাইসে fscking / boot পার্টিশনের কোনও স্থান অবশিষ্ট নেই। কেউ "dpkg -P" ব্যবহার করে এটি করতে পারবেন তারপরে / বুটে (ফাঁকা স্থান) এবং / var / lib / initramfs-সরঞ্জাম (initrd চিত্রটি উত্পন্ন হবে না) এর সাথে সম্পর্কিত এন্ট্রি পরিষ্কার করে।
ওয়াজকি

3
সঠিক উত্তরের একটি মূল বিষয় হ'ল তারা আপনাকে কার্নেলের পুরানো সংস্করণযুক্ত প্যাকেজগুলি সরাতে বলেছে । এই সমস্যার সমাধান করে এমন অনেক ওয়েব পৃষ্ঠাগুলি সরাসরি / বুট পার্টিশনের ফাইলগুলি সরানোর পরামর্শ দেয়; এটি কিছুক্ষণের জন্য কাজ করতে পারে তবে আপনি অবশেষে এমন একটি প্যাকেজ আপডেট করতে পারবেন যা কার্নেল সংস্করণগুলির প্যাকেজগুলির জন্য অনুপস্থিত ফাইলগুলি পুনরায় তৈরি করে এবং এর ফলে আপনাকে স্থান অতিক্রম করবে।
কেজিগ্রিটন

উত্তর:


629

আপনার অনেকগুলি অব্যবহৃত কার্নেল রয়েছে। এর সাথে শেষ কার্নেলগুলি ছাড়া সমস্ত অপসারণ করুন:

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

16
চমত্কার উত্তর। আরও একটি তথ্য তথ্যের সাহায্য করবে: আপনি কী কী কার্নেল ব্যবহার করছেন তা আপনি (কীভাবে নিশ্চিতভাবে) বলতে পারবেন? সম্ভবত আপনি এটি শেষ বলে ধরে নিতে পারবেন না ... সম্পাদনা : এবং উত্তরটি দেখে মনে হচ্ছে uname -a। আপনার ইনস্টলড-নতুন-কার্নেলটি মুলতুবি না থাকার বিষয়টি নিশ্চিত করার জন্য সম্ভবত সেরা (যেমনটি আমি করেছি; তবে আমি uname -aএবং "সর্বশেষ" কার্নেলের মধ্যে অমিলটি লক্ষ করেছি )।
টিজে ক্রাউডার

5
@ ফ্রেডডিব হয়ে গেছে নোট করুন যে কমান্ডগুলি লোড / বুট করা ব্যতীত অন্য কার্নেলগুলি মুদ্রণ / অপসারণ করে ।
লেকেনস্টেইন


11
খুব পুঙ্খানুপুঙ্খ উত্তর এবং এখনও কাজ করে ... এবং 2014 সালে এখনও দরকার K
allprog

6
@ বাইফ-ফেরডি কার্নেলটি ওএসের একটি অপরিহার্য অঙ্গ, যদি কোনও নতুন সংস্করণ যদি আপনার হার্ডওয়ারের সাথে পুরোপুরি কাজ না করে, তবে আপনি এখনও বুট করার জন্য আলাদা একটি নির্বাচন করতে পারেন। একটি দুর্দান্ত বৈশিষ্ট্য সম্ভবত এমন কিছু হবে যা এক মাসের চেয়ে পুরানো সমস্ত স্বয়ংক্রিয়ভাবে ইনস্টল করা কার্নেলগুলি সরিয়ে দেয় (সর্বশেষ দুটি বাদে)।
লেকেনস্টেইন

217

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

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

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


এটি লিনাক্স-লিবিসি-ডেও এর সাথেও মেলে: এএমডি 64
ফ্রেডরিক নর্ড

"linux-libc-dev: amd64" অপ্রয়োজনীয় অপসারণের কারণ কী হবে?
কনফিউজড

@ ফ্রেডেরিকনর্ড ধন্যবাদ জানাতে। এই স্থির। এটি সি প্রোগ্রামগুলি সংকলন করতে কিছু অসুবিধা সৃষ্টি করত।
dward

8
কমান্ডটি ভাল শোনাচ্ছে, তবে আমি যখন এটি চালাচ্ছি তখন আমি একই ত্রুটিটি পাই যা আমি কিছু ইনস্টল করতে চাইলে এটি করতে পারি না কারণ বুটটি পূর্ণ: --------------- ----------- নিম্নলিখিত প্যাকেজগুলিতে আনমেট নির্ভরতা রয়েছে: লিনাক্স-চিত্র-অতিরিক্ত-4.2.0-27-জেনেরিক: নির্ভর করে: লিনাক্স-চিত্র-4.2.0-27-জেনেরিক তবে এটি চলছে না লিনাক্স-চিত্র-অতিরিক্ত-4.2.0-30-জেনেরিক ইনস্টল করা হবে: নির্ভর করে: লিনাক্স-চিত্র-4.2.0-30-জেনেরিক তবে এটি ইনস্টল হতে যাচ্ছে না
অ্যালেক্স

109
sudo apt-get autoremove

এই কমান্ডটি স্বয়ংক্রিয়ভাবে কাজটি করছে।


7
নামটি থেকে বোঝা যায়, অ্যাপটি-গেট অটোরেমোভ একটি স্বয়ংক্রিয় ক্রিয়াকলাপ যেখানে আপনি কী অর্জন করতে চাইছেন সিস্টেমটি তার "সেরা অনুমান" গ্রহণ করে। এটি সাধারণ জ্ঞান সিস্টেম প্রশাসনের বিকল্প হিসাবে ব্যবহার করা উচিত নয়। এই পদ্ধতির সমস্যা: যদি আপনি (বা কোনও আপডেট) এই নির্ভরতা তালিকার অংশ হিসাবে থাকা কোনও প্যাকেজ অপসারণ করেন তবে স্বয়ংক্রিয়ভাবে সরানো ফাংশন নির্ভরতা তালিকার অন্যান্য সমস্ত প্যাকেজগুলি সরিয়ে ফেলতে চায়, আপনাকে ডেস্কটপ কাজ না করে ছেড়ে চলে যায় (এবং কখনও কখনও) এমনকি একটি সম্পূর্ণ ভাঙ্গা সিস্টেম সহ)।
রিঞ্জউইন্ড

রেফারেন্স: 1 অনেক উৎস উপরে এই মন্তব্যের জন্য: linuxquestions.org/questions/debian-26/...
Rinzwind

7
যদি লিনাক্স-চিত্র-জেনেরিক ইনস্টল করা থাকে এবং নতুন কার্নেলগুলি স্পষ্টভাবে ইনস্টল করা না হয়, এটি পুরানো কার্নেলগুলি সরিয়ে ফেলবে। সাধারণ জ্ঞান হ'ল প্রথমে সেগুলি না পড়ে সিস্টেমে কোনও পরিবর্তন গ্রহণ করা। এই কমান্ডটি ব্যবহার করার আগে যদি সাধারণ জ্ঞান ব্যবহার করা হয় তবে কোনও সমস্যা হবে না।
মিচিড

1
@Rinzwind - এই কমান্ডের পুরানো 'লিনাক্স হেডার' সরিয়ে আমার ডিস্কের স্থান 250 মেগাবাইট খালি
Chinmaya বি

3
কোনও অ-স্থানের শর্ত বিদ্যমান থাকার পূর্বে ব্যবহৃত হলে স্বতঃআপনার কাজ করে । যাইহোক, একবার যখন অ্যাপ্লিকেশনটি স্থানের বাইরে চলে যায় এবং অবসন্ন হয়ে যায় (এবং ব্যবহারকারী শেষ পর্যন্ত সমস্যাটি লক্ষ্য করে), অট্রিমোভ বা অন্য কোনও অ্যাপ্লিকেশন ভিত্তিক সমাধান চালাতে খুব দেরি হয়। যদি এটি আপনার ক্ষেত্রে হয় তবে dpkg ভিত্তিক সমাধানগুলির মধ্যে একটি চেষ্টা করে দেখুন।
ব্যবহারকারীর 3535733

40

পুরানো কার্নেল চিত্রগুলি সহজেই নির্বাচন এবং মুছে ফেলার জন্য সিনাপটিক প্যাকেজ ম্যানেজার ব্যবহার করা যেতে পারে। সিনাপটিক প্যাকেজ ম্যানেজারের স্ক্রিনশট

যদি আপনি ইতিমধ্যে সিন্যাপটিক ইনস্টল না করে থাকেন:

sudo apt-get install synaptic

অ্যাপ্লিকেশন শুরু করুন এবং প্রদর্শিত বিকল্পগুলি নির্বাচন করুন।

আপনি "2.6.x" সংস্করণ সহ সমস্ত "লিনাক্স-" প্যাকেজগুলি হাইলাইট করতে সক্ষম হবেন যেখানে আপনার / বুট ফোল্ডারের ফাইলগুলি অনুসারে x 31 থেকে 38 এর মধ্যে রয়েছে।

এই সমস্ত লিনাক্স প্যাকেজগুলির প্রত্যেকটিতে রাইট-ক্লিক করুন এবং "সম্পূর্ণ অপসারণের জন্য চিহ্নিত করুন" বিকল্পটি নির্বাচন করুন। শেষ পর্যন্ত প্রয়োগ বোতামটি ক্লিক করুন। এটি সমস্ত ফাইল এবং কোনও সম্পর্কিত ফাইল সরিয়ে ফেলবে। আপনার /bootফোল্ডারটি এখন একটু পরিপাটি হওয়া উচিত।


আমি 14.04 এ আছি। আমি অতীতে কমান্ড লাইনের মাধ্যমে এই পরিস্থিতিটি পরিচালনা করেছি, তবে আমি আজই এই পদ্ধতিটি চেষ্টা করার সিদ্ধান্ত নিয়েছি ... আমার জন্য, আমার লিনাক্স চিত্রগুলি ইনস্টলড (ম্যানুয়াল) এর অধীনে ছিল, ইনস্টল করা হয়নি (স্থানীয় বা অপ্রচলিত)
রায়ান

8
ওহ না. জায়গা নেই বলে আমি সিন্যাপটিক ইনস্টল করতে পারছি না /boot!
জন ম্যাকগিহি

@ জনএমসিজিহি fsck এবং বিচ্ছিন্ন হওয়া উচিত আপনার জন্য সমস্যাটি সমাধান করা উচিত।
ফ্লিপএমসিএফ

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

তারপরে আপনি "দোসর" ট্যাবে গিয়ে উবুন্টু টুইক চালাতে পারেন এবং এখান থেকে এটি তিনটি ক্লিকের বিষয়:

উবুন্টু পুরানো কার্নেলের জন্য ঝাঁকুনির ঝাঁকুনি দেয়

সুরক্ষার জন্য শেষ কার্নেলটি (আপনি কখনই জানেন না) বা একটি সুপরিচিত কার্যকারী কার্নেল ছেড়ে দেওয়া ভাল; তবে এটি সহজেই স্বনির্ধারিত।

আপনি অনেকগুলি জিনিস পরিষ্কার করার জন্য একই সরঞ্জামটি ব্যবহার করতে পারেন --- কেবল মনে রাখবেন আপনি যদি থাম্বনেইল ক্যাশে বা টিবি ক্যাশে পরিষ্কার করেন তবে সিস্টেমগুলি তাদের প্রয়োজনে পুনরায় তৈরি করতে হবে।


আমি উবুন্টু টুইঙ্ক ইনস্টল করার চেষ্টা করেছি এবং রিপোজিটরি ওয়েবসাইটেও যাচ্ছি। এটি বলে যে এটি কেবল ১৩.১০ এর আগে এবং তার আগে। 15.04 এর জন্য আপনার একটি আপডেট সংস্করণ রয়েছে?
জয়কচার ডটকম

@ JayCouture.com সাইটের সংস্করণটি 14.04 এর জন্য ("13.10 এর আগে এবং তার আগে" পুরানো রিলিজের একটি লিঙ্ক)। 14.10 বা 15.04 এর জন্য কোনও সংস্করণ থাকলে আমি এড়িয়ে চলেছি।
রোমানো

19

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আকারটি বাড়ানো উচিত বা অন্য কিছু করা উচিত কিনা তা আমার এখনও জানতে হবে।


আপনার প্রথমে পৃথক / বুট পার্টিশন থাকা উচিত নয়, বা 100 এমবি খুব ছোট হওয়ায় আপনার আকারটি বাড়াতে হবে।
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 থেকে এন্ট্রি সরিয়ে পুনরায় ইনস্টল করুন এবং গ্রাবটি পুনরায় ইনস্টল করুন। উদাহরণস্বরূপ (আপনার সঠিক পার্টিশনটি ব্যবহার করতে হবে):

sudo -s
umount /boot
mount /dev/sda2 /mnt
cp -a /mnt/* /boot/
umount /mnt
gedit /etc/fstab
grub-install /dev/sda

তারপরে আপনি পুরাতন / বুট পার্টিশনটি মুছতে জিপিআর্ট ব্যবহার করতে পারেন এবং সেই স্থানটি ব্যবহার করার জন্য মূল পার্টিশনটি প্রসারিত করতে পারেন। রুট পার্টিশন প্রসারিত করতে আপনাকে লাইভসিডি থেকে বুট করতে হবে, এবং বিনামূল্যে স্থানটি তত্ক্ষণাত ডান দিকে হওয়া দরকার। যদি / বুট পার্টিশনটি বর্তমানে মূল বিভাজনের বাম দিকে থাকে, তবে আপনাকে প্রথমে রুট পার্টিশনটি বাম দিকে সরানো দরকার, তারপরে এটি প্রসারিত করুন, তবে এটি খুব দীর্ঘ সময় নিতে পারে, সুতরাং এটির জন্য মূল্যবান নাও হতে পারে কষ্ট।


6
আমার প্রধান পার্টিশনে / বুট স্থানান্তর করা আমার পক্ষে কোনও সমাধান নয় কারণ / বুটটি এনক্রিপ্ট করা হয়েছে। আমার প্রশ্ন থেকে আপনি তা জানতে পারলেন না, দুঃখিত।
ব্যবহারকারী 6722

বুট ভলিউমে কোনও স্থান না থাকার কারণে উপরের সমাধানগুলি যদি কাজ না করে বা আপনার কাছে বারবার "আউট অফ স্পেস" সমস্যা থাকে তবে এটি একটি ভাল সমাধান। (: দয়া করে প্রথম পড়া কেন এটা কখনও কখনও একটি / boot পার্টিশন যদিও থাকতে হবে এর help.ubuntu.com/community/DiskSpace )
svandragt

@ সোভানড্রাগ্ট, আজকাল মূলত কোনও / বুট পার্টিশনের প্রয়োজন নেই। শুধুমাত্র একটি বাম সম্পর্কে যদি আপনার বায়োসটি ভেঙে যায় এবং পুরো ডিস্কটি দেখতে না পান এবং গত দশকে তৈরি কোনও মেশিনের সীমাবদ্ধতা না থাকে। অন্যান্য লিগ্যাসির কেস যেমন রেইড বা এলভিএম ব্যবহার করা এখন grub2 দ্বারা সঠিকভাবে পরিচালনা করা হয়।
psusi

পৃথক বুট বিভাজন থাকার কয়েকটি কারণ রয়েছে। তবে আমি নিশ্চিত নই যে বেনিফিটগুলি বর্ধিত জটিলতা সেটআপের জন্য উপযুক্ত। 1. ওএস ext2- এর মাধ্যমে দ্রুত বুট থেকে উপকৃত হতে পারে ২.আরও হিসাবে চালিত / বুট করে সুরক্ষা বাড়ানো যেতে পারে। (রুটকিটস ইত্যাদি), বা এমনকি ওএস রানটাইমে আনমাউন্ট থাকবে না। ৩. গ্রুব (১) এর সাথে ext4 নিয়ে কিছু সমস্যা আছে (ছিল)। 4. lvm (grubv1) চালানোর জন্য প্রয়োজনীয়। যদিও এটি ডিফল্ট উবুন্টু সেটআপে প্রযোজ্য নয়।
ডেভিড কাহিল

lsblkকোন পার্টিশনটি কি তা নির্ধারণ করতে ব্যবহার করা যেতে পারে
মিঃ বেগুনি

9

উপরের উত্তরগুলি থেকে সর্বোত্তমভাবে গ্রহণ করা, আমার চেষ্টা করা এবং সত্য পদ্ধতিটি এটি:

  • 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 autoremoveAllyচ্ছিকভাবে , একটি অতিরিক্ত করুন - এটি পুরানো কার্নেলগুলির যে কোনও অবশিষ্ট অবধি নির্ভরতা সরিয়ে ফেলবে যা বর্তমানের দ্বারা আর প্রয়োজন হয় না, আরও কিছু জায়গা খালি করে।

আপনার কাছে কার্নেল সংস্করণ ইনস্টল না করে হেডার ফাইল থাকতে পারে বা বিপরীতে — কেবলমাত্র কমান্ডটিতে এই সমস্ত সংস্করণ অন্তর্ভুক্ত করা উচিত। এপিটি অভিযোগ করবে যে কিছু প্যাকেজ ইনস্টল না হওয়ার কারণে এটি সরানো যাবে না, তবে এতে কোনও ক্ষতি হবে না।

যদি কিছু ব্যর্থ হয় ...

  • কার্যক্ষম কমান্ড একটি কারণে ব্যর্থ হলে কোন ডিভাইস-এ স্থানাভাব ত্রুটি, পরিবর্তে সংশ্লিষ্ট dpkg কমান্ড প্রয়োগ করুন: sudo dpkg --purge linux-{image,headers}-3.16.0-{xx,yy,zz}
  • একই সংস্করণ (যা আপনি আনইনস্টল করতে চান) linux-imageএর linux-headersপ্যাকেজগুলির দ্বারা প্যাকেজগুলির প্রয়োজনীয়তার কারণে যদি dpkg কমান্ডটি এখনও কাজ না করে, dpkg সমাধান করতে ব্যর্থ হতে পারে। dpkg -lকমান্ড লাইনে কোনও প্যাকেজ নামের প্রত্যয় নির্দিষ্ট করে আউটপুট পরীক্ষা করে দেখুন । উদাহরণস্বরূপ, আমার এক সিস্টেমে শেষ পর্যন্ত কাজ করা কমান্ডটি ছিল sudo dpkg --purge linux-{image,headers}-3.16.0-{xx,yy,zz}-generic-pae
  • আপনি যদি অন্য কোনও ত্রুটি পান তবে সহায়তা নিন — আপনার ভাবার চেয়ে আলাদা সমস্যা হতে পারে।

@ ব্যবহারকারীর 3535733 স্বাভাবিক ক্ষেত্রে (কমপক্ষে আমি যেটিকে চালিয়ে যাচ্ছি) এটি হ'ল কিছু জায়গা এখনও রয়েছে /boot, অন্য কার্নেল প্যাকেজের জন্য যথেষ্ট নয়। সে ক্ষেত্রে উপরেরগুলি ভাল কাজ করেছে। সংশ্লিষ্ট dpkgকমান্ড যুক্ত করতে নিঃশঙ্কা করুন । হিসাবে purge, না, এটি 'জোর করে অপসারণ' এক ধরণের নয়। এটি কী থেকে আলাদা করে তা removeহ'ল এটি কনফিগারেশন ফাইলগুলিও মুছে দেয়। যেহেতু / ততক্ষণ কার্নেল প্যাকেজগুলি কোনও কনফিগার ফাইল ইনস্টল করে না removeএবং purgeকার্নেল প্যাকেজগুলির জন্যও এটি করবে।
ব্যবহারকারী 149408

সংশ্লিষ্ট dpkg কমান্ডের সাথে চতুর্থ বুলেট যুক্ত হয়েছে।
ব্যবহারকারী535733

4

আমার জন্য apt-get purgeএবং dpkg --removeউভয়ই ব্যর্থ হয়েছিল। সুতরাং আমি / বুট দিয়ে পুরানো কার্নেল চিত্রগুলি কয়েক মুছতে হয়েছিল rm -f


4
প্যাকেজগুলি সরিয়ে ফেলার এটি ভাল উপায় নয়। যদিও এই উত্তরটি সঠিকভাবে সরানো ব্যর্থ হয়েছে সে সম্পর্কে খুব সুনির্দিষ্ট নয়, তবে আমি নিশ্চিত যে যদি সেই তথ্য দেওয়া হত (অবশ্যই একটি পৃথক প্রশ্নে) আমরা চেষ্টা করতে পারি এবং সমস্যার কারণটি সনাক্ত করতে সক্ষম হব।
থমাসর্টটার

2
আমি বিশ্বাস করি এটি ব্যর্থ হয়েছিল, কারণ /bootবিভাজন পূর্ণ ছিল। এই কমান্ডগুলি প্রথম কার্নেলটিকে সাম্প্রতিক সময়ে আপগ্রেড করার এবং No space left on deviceজেনারেশনের সময় ক্র্যাশ করার চেষ্টা করেinitrd.img
vp_arth

1
সতর্কতা, সরাসরি ফাইলগুলি সরানো সমস্যার কারণ হতে পারে, লিনাক্স-ফার্মওয়্যার প্যাকেজটির আপডেটের ফলে প্যাকেজ তথ্যের উপর ভিত্তি করে ইনস্টল করা প্রতিটি সংস্করণের জন্য initrd.img ফাইলটি পুনরায় তৈরি করতে পারে। দেখুন: Askubuntu.com
প্রশ্নগুলি

1
ধন্যবাদ, এটিই জীবন রক্ষার চূড়ান্ত সমাধান যখন অন্য কিছুই কাজ করে না।
জেফ পেকেট

4

সমস্ত কার্নেল তালিকাবদ্ধ করুন:

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

যদি এটি এখনও আপনাকে ফাইল ইনস্টল / আনইনস্টল করার জন্য বুট ডিস্কের স্থান ত্রুটি দেয় তবে সরাসরি / বুট ডিরেক্টরি থেকে ওল্ড চিত্রের একটি অপসারণ করুন ,

ls -lh /boot/*-3.13.0-119*;

rm /boot/*-3.13.0-119*; 

দ্রষ্টব্য: কোনও চিত্র মোছার আগে দয়া করে আবার কার্নেল চিত্রটি পর্যালোচনা করুন।


2

আমি ইতিমধ্যে পুরানো কার্নেল প্যাকেজগুলি মুছে ফেলেছি (লিনাক্স-শিরোনাম ...)

linux-headers-*কার্নেল নয় কার্নেল প্যাকেজগুলির নাম দেওয়া হয় linux-image-*। নামে বেশী linux-headers-*কার্নেল মডিউল কম্পাইল জন্য উন্নয়ন প্যাকেজ হয়: তারা / বুট ডিরেক্টরির মধ্যে বসবাস করেন না এবং আপনার সিস্টেম দিনে ব্যবহারের সাধারণ প্রতিদিন প্রয়োজন হয় না।

আপনি যে ফাইলগুলি / boot তালিকাভুক্ত না বিভিন্ন বয়সী কার্নেল ইমেজ অন্তর্ভুক্ত ( vmlinuz*) এবং কম্পাইল initrd ইমেজ ( initrd.img*) আর কার্নেল, যা একটি ইঙ্গিত যে আপনি এখনও পুরাতন কার্নেল প্যাকেজ ইনস্টল অনেক আছে জন্য।

আপনার সাথে ইনস্টল করা কার্নেলগুলি তালিকাভুক্ত করতে সক্ষম হওয়া উচিত

aptitude search ~ilinux-image

(দ্রষ্টব্য যে এটি সম্ভবত প্যাকেজগুলি ফিরিয়ে দেবে যা কার্নেলগুলিও নয়)।

সাধারণত দুটিরও বেশি কার্নেল ইনস্টল করার প্রয়োজন হয় না currently বর্তমানে একটি ব্যবহৃত এবং এর আগেরটি (ফলব্যাক হিসাবে)) সুতরাং আপনি একে একে পুরানোগুলি অপসারণ শুরু করতে পারেন:

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

নিশ্চিত করুন যে আপনি "3.2.0-23-জেনেরিক" প্রকৃত কার্নেল সংস্করণটি অপসারণ করতে চান তা দিয়ে! এছাড়াও, যেমন প্যাকেজ অপসারণ করবেন না 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 সালে এই প্রশ্নের নতুন মন্তব্য এবং উত্তর রয়েছে তবে আমি এখানে খুব দরকারী বলে মনে করি একটি উত্তর অনুপস্থিত:

সাধারণ দৈনন্দিন ব্যবহারের ডেস্কটপ ওএস হিসাবে উবুন্টু পৃথক \ বুট পার্টিশন দিয়ে ইনস্টল করার কোনও কারণ নেই এবং এর মতো কিছু "সাধারণ ব্যবহারকারীর" জন্য কিছু সরবরাহ করে না ... সুতরাং সমাধানটি \ বুট বিভাজন ছাড়াই একটি নতুন ইনস্টল এবং এটি উপায় আপনি কখনও এই ধরনের সমস্যা হবে না

পিএস: আমার উত্তরটি মুছে ফেলা বা স্বীকৃত উত্তরে যুক্ত করা যেতে পারে ... (আমি মনে করি এটি কিছু লোককে এইভাবে সহায়তা করবে)


1

দুর্দান্ত সহায়ক ইউটিলিটি যা আপনার বুট পার্টিশনটি পরিষ্কার করে দেবে

git clone https://github.com/erichs/bootnukem.git
cd bootnukem
sudo ./install.sh

আপনার নিজের ঝুঁকিতে ব্যবহার করুন, তবে এটি আমার পক্ষে কাজ করেছে:

sudo bootnukem

ডাউনটা কেন?
জোনাথন

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

[আস্ক উবুন্টু নুব হিসাবে আমি খ্যাতি = ৫০ অবধি মন্তব্য করতে পারি না সুতরাং এ কারণে ডাউন-ভোট দেবেন না।]

আমার সার্ভারও এটি করছিল। আক্ষরিক অর্থে এখানে প্রত্যাশিত উত্তরগুলির কোনওটি কার্যকর হয়নি কারণ এগুলি সম্পূর্ণ করার জন্য / বুটে কিছু ওয়ার্কিং রুম প্রয়োজন। বুট পার্টিশনটি পূর্ণ হলে এটি কোনও চিত্র মুছে না ফেলে হঠাৎ করেই শেষ হবে।

আমার পক্ষে কাজ করা একমাত্র কাজটি ছিল বর্তমান চিত্রটি পর্যালোচনা করা, তারপরে ম্যানুয়ালি sudo rm filenameসবচেয়ে পুরানো চিত্র ফাইলগুলির জন্য (প্রত্যেকটির নামে -3.16.0-30 ছিল )। একবার এটি হয়ে গেলে, sudo apt-get autoremoveতার কাজটি করার জন্য উইগল-রুমটি দরকার ছিল। এটি সেই সংস্করণটির সাথে সম্পর্কিত কিছু ত্রুটিগুলি হাইলাইট করেছিল, উদাহরণস্বরূপ: "ডিপোডম: ফ্যাটাল: /boot/System.map-3.16.0-30- জেনারিক লোড করা যায়নি: এরকম কোনও ফাইল বা ডিরেক্টরি নেই" তবে এটি প্রত্যাশিত।

শেষ হয়ে গেলে, dfপুনরায় / সুস্থ হয়ে উঠার জন্য 42% ব্যবহারের জন্য প্রত্যাবর্তনকারীরা ফিরে আসে।


1
আপনি যে পোস্টটি খুঁজছেন askubuntu.com/questions/171209/...
muru

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

ঠিক আছে, দুটি অনুরূপ সমস্যা রয়েছে: ক) যেখানে সিস্টেমটি সতর্ক করে যে আপনার ডিস্কটি পূর্ণ হয়ে উঠছে, তবে apt-getচালিয়ে যাওয়ার যথেষ্ট জায়গা রয়েছে এবং খ), যেখানে apt-getডিস্কটি খুব বেশি পূর্ণ হওয়ার কারণে ব্যর্থ হয়। এটি অন্য পোস্ট।
মুরু

0

আমি এই বাশ স্ক্রিপ্টটি একবারে পুরানো কার্নেলগুলি নির্বাচন করার জন্য লিখেছিলাম :

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

সমস্ত ব্যাশ কোড এবং নির্দেশাবলী লিঙ্কে অন্তর্ভুক্ত করা হয়েছে।


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. আপডেট গ্রাব

    update-grub

  9. সর্বশেষে আপনার সিস্টেম প্যাকেজ আপডেট করুন

    apt-get update


-1

আপনি আরো অব্যবহৃত ফাইল মুছে ফেলুন না পারেন, তাহলে আর আপনি যদি সঙ্গে অন্যান্য পার্টিশন / অথবা একই ডিভাইসে মুক্ত স্থান আছে, তবে আপনি দ্বারা / boot পার্টিশন মাপ পরিবর্তন করতে পারেন বিভক্ত / GParted- র । (এটি ইনস্টলেশন মিডিয়াতেও অন্তর্ভুক্ত রয়েছে))

সতর্কতা : পার্টিশনের পুনরায় আকার দেওয়া বিপজ্জনক অপারেশন, এটির আগে আপনার গুরুত্বপূর্ণ ডেটা অন্য মিডিয়ায় সংরক্ষণ করুন!


ছোট পৃথক / বুট পার্টিশনের বেশিরভাগ আক্রান্তরা ইনস্টল করার পরে 'পুরো ডিস্ক এনক্রিপশন' বেছে নিয়েছিলেন, যার জন্য এলভিএম প্রয়োজন requires এই সমাধানগুলি ব্যবহারকারীর পক্ষে সমাধানের চেয়ে আরও বেশি সমস্যা সৃষ্টি করবে বলে মনে হয়।
ব্যবহারকারীর 3535733
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.