বুট / পার্টিশন পরিষ্কার করার নিরাপদতম উপায় কী?


273

আমি /bootপার্টিশনের জন্য 200 এমবি নিযুক্ত করেছি । আমি যখনই কার্নেলটি আপডেট করার চেষ্টা করি তখন আমি একটি ত্রুটি বার্তা পাই যা মূলতঃ /bootপূর্ণভাবে লেখা আছে states

/bootপুরানো কার্নেলগুলি মুছে ফেলতে এবং সরিয়ে / ব্যাকআপ করতে আমি কী করতে পারি ?



/ বুটটি পূর্ণ হলে, জিজ্ঞাসা করুন
nslntmnx

উত্তর:


334

কমান্ড লাইন পদ্ধতি:

প্রথমে আপনার কার্নেল সংস্করণটি পরীক্ষা করুন, সুতরাং আপনি চালিত ইন-ব্যবহারের কার্নেল চিত্রটি মুছবেন না:

uname -r

ইনস্টল করা কার্নেলের তালিকার জন্য এখন এই কমান্ডটি চালান:

dpkg --list 'linux-image*' | grep ^ii

এবং আর চালানোর পরে আপনি যে কার্নেলগুলি চান / প্রয়োজন চান তা মুছুন:

sudo apt-get remove linux-image-VERSION

আপনি মুছে ফেলতে চান সেই কার্নেলের সংস্করণটি দিয়ে ভার্সনটি প্রতিস্থাপন করুন।

আপনি যখন পুরানো কার্নেলগুলি অপসারণের কাজ শেষ করেন, তখন আপনার আর প্রয়োজন হয় না এমন প্যাকেজগুলি সরাতে আপনি এটি চালাতে পারেন:

sudo apt-get autoremove

এবং পরিশেষে আপনি গ্রাব কার্নেল তালিকা আপডেট করতে এটি চালাতে পারেন:

sudo update-grub

34
sudo dpkg --list 'linux-image*' | grep ^iiকেবল ইনস্টল করা কার্নেলগুলি দেখতে এটি কিছুটা সহজ করে তোলে। এছাড়াও আমি মনে করি এটি update-grubনিরীহ তবে কঠোরভাবে প্রয়োজনীয় নয়, আপনি যখন কার্নেলটি আনইনস্টল করেন তখন এটি স্বয়ংক্রিয়ভাবে চালিত হয়।
নেলসন

9
sudo dpkg --list 'linux-image*' | grep ^ii | awk '{print $2}' | sort | egrep "[0-9]-generic" | head -n -3 | tr '\n' ' '; echo ""প্যাকেজের নামের সাথে ব্যবহারের তালিকা পেতে ব্যবহার করুন sudo apt-get removehead -n -3সিস্টেমে 3 সাম্প্রতিক কার্নেলগুলি বামে রাখতে ব্যবহৃত হয়।
সিথসু

2
আমার সাধারণ একটি লাইনার:apt-get remove `dpkg --list 'linux-image*' |grep ^ii | awk '{print $2}'\ | grep -v \`uname -r\``
gcb

27
sudo apt-get autoremoveপর্যাপ্ত হওয়া উচিত (সাধারণত শেষ 3 কার্নেল দিয়ে আপনাকে ছেড়ে দেওয়া হয়)
এমবিএক্স

6
এটি একটি ভাল উত্তর, তবে আমি সন্দেহ করি এটি বেশিরভাগ ক্ষেত্রে (যদি সমস্ত না হয়) ক্ষেত্রে কাজ করতে পারে: সমস্যাটি /bootপূর্ণ so তাই apt-getকিছু ত্রুটি কোড বা অন্য কোনও ক্ষেত্রে ব্যর্থ হবে। নীচের উত্তরটি কিছুটা "হ্যাকিয়ার" (আমাকে অবশ্যই স্বীকার করতে হবে যে rm -rfএটি প্রকাশের জন্য আমাকে নিজেকে স্টিল করতে হয়েছিল /boot) তবে এই পরিস্থিতিতে সম্ভবত একমাত্র কাজ করার সম্ভাবনা রয়েছে।
মার্কো

283

দ্রষ্টব্য: এটি কেবলমাত্র যদি আপনি 100% পূর্ণ / বুটের কারণে পরিষ্কার করতে ব্যবহার করতে না পারেন

যদি আপনার / বুটটি 100% এ থাকায় এপট-গেট কাজ না করে তবে আপনাকে প্রথমে / বুট পরিষ্কার করতে হবে। এটি সম্ভবত আংশিক ইনস্টলটিতে কার্নেল আপগ্রেড পেয়েছে যার অর্থ অ্যাপ্লিকেশন পুরোপুরি হিমশীতল হয়ে গেছে এবং আপনাকে apt-get -f installএই আদেশটি ব্যর্থ রাখার পরেও চালিয়ে যেতে বলবে ।

কার্নেল চিত্রগুলির তালিকা পান এবং নির্ধারণ করুন যে আপনি ছাড়া কী করতে পারেন। এই কমান্ডটি বর্তমানে চলমান একটি ছাড়া ইনস্টল করা কার্নেলগুলি প্রদর্শন করবে sudo dpkg --list 'linux-image*'|awk '{ if ($1=="ii") print $2}'|grep -v `uname -r`। তালিকার দুটি নতুন সংস্করণ নোট করুন। রানিংটি এখানে তালিকাভুক্ত না হওয়ায় আপনার চিন্তা করার দরকার নেই। আপনি এটি দিয়ে পরীক্ষা করতে পারেন uname -r

কার্নেলগুলির জন্য / বুটে সমস্ত ফাইল মুছে ফেলার জন্য একটি কমান্ড তৈরি করুন যা আপনাকে বুদ্ধিমান রাখতে ব্রেস প্রসারণ ব্যবহার করে আপনার পক্ষে গুরুত্বপূর্ণ নয়। বর্তমান এবং দুটি নতুন কর্নেল চিত্র বাদ দিতে ভুলবেন না। উদাহরণ: sudo rm -rf /boot/*-3.2.0-{23,45,49,51,52,53,54,55}-*। আপনি সিনট্যাক্স {80..84} সহ একটি ব্যাপ্তিও ব্যবহার করতে পারেন}

sudo apt-get -f install আংশিক ইনস্টল সম্পর্কে অ্যাপ্ট গ্রম্পী কী তৈরি করছে তা পরিষ্কার করতে।

যদি আপনি এমন কোনও ত্রুটিতে চলে যান যা "অভ্যন্তরীণ ত্রুটি: চিত্র (/ বুট / ভিএমলিনিউজ 3.2.0-56- জেনারিক) সন্ধান করতে পারে না") এর মতো একটি লাইন অন্তর্ভুক্ত করে, তবে কমান্ডটি চালান sudo apt-get purge linux-image-3.2.0-56-generic(আপনার উপযুক্ত সংস্করণ সহ)।

অবশেষে, sudo apt-get autoremoveপুরাতন কার্নেল চিত্র প্যাকেজগুলি মুছে ফেলার জন্য যা ম্যানুয়াল বুট ক্লিন দ্বারা এতিম হয়েছে।

সম্পূর্ণ / বুট পার্টিশনটি আবিষ্কার করার অপেক্ষায় আপনি কোনও ব্যাকআপ নিয়ে থাকতে পারেন এমন কোনও আপগ্রেডের পরামর্শ, রান করুন sudo apt-get updateএবং sudo apt-get upgradeযত্ন নিন।

পরামর্শ 2, https://help.ubuntu.com/commune/A AutomaticSecurityUpdates পর্যালোচনা করুন এবং অপ্রচলিত-আপগ্রেড সেট করুন: / অপটিকৃত-নির্ভরতাগুলি /etc/apt/apt.conf.d/50unattended-upgrades এ সত্য হিসাবে নির্ধারণ করুন। আপনি অব্যবহৃত কার্নেলগুলি পরিষ্কার করেছেন তা নিশ্চিত হওয়ার জন্য প্রতিটি সুরক্ষা আপডেটের পরে এটি অটোরেমো চালানোর সমতুল্য হবে তবে ভবিষ্যতে আপনাকে এই সমস্যা থেকে বাঁচানো অব্যবহৃত বলে মনে করে এমন অন্যান্য জিনিসও সরিয়ে ফেলবে।


3
এইভাবে আমার কাছে পরবর্তী পুনরায় বুট করার জন্য সর্বশেষতম আছে এবং তারপরে এর মধ্যে কিছু ভেঙে যাওয়ার আগে তার একটি। সাধারণত আমার কাছে প্রচুর জায়গা থাকে তাই এটি কিছু না পেয়ে আঘাত করে না এবং কোনও দৃশ্যে পর্যাপ্ত ব্যাকআপ বিকল্প না রাখার জন্য এটি আমার প্যারানোইয়াকে সন্তুষ্ট করে।
ফ্লিকফার্লি

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

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

2
আপনি যদি dpkg --purgeএকটি পূর্ণ বুট ব্যবহার করেন তবে নিম্নলিখিতগুলি পাবেন $ sudo dpkg --purge linux-image-3.13.0-65-generic dpkg: dependency problems prevent removal of linux-image-3.13.0-65-generic: linux-image-extra-3.13.0-65-generic depends on linux-image-3.13.0-65-generic. dpkg: error processing package linux-image-3.13.0-65-generic (--purge): dependency problems - not removing Errors were encountered while processing: linux-image-3.13.0-65-generic
ফ্লিকফ্লিফ্লি

1
পরিষ্কার করার পরে / বুট আপ-গেট ইনস্টল করুন -f এখনও কাজ করবে না। ব্যবহার করে df -iআমি জানতে পেরেছিলাম যে /পুরানো কার্নেলের সোর্স কোডের জন্য প্রচুর পরিমাণে ফাইলের কারণে আমি ইনওডগুলিও শেষ করেছিলাম/usr/src
ক্রিস্টোফার

51

Https://help.ubuntu.com/commune/RemoveOldKernels এ এ সম্পর্কে ডকুমেন্টেশন রয়েছে

সংক্ষেপে: ব্যবহার

sudo apt-get autoremove --purge
# and/or:
sudo purge-old-kernels

purge-old-kernelsটুল মাধ্যমে ইনস্টল করা যাবে sudo apt install byobu। এর ম্যান-পৃষ্ঠা থেকে বর্ণনা এখানে দেওয়া হয়েছে:

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

যদি আপনি একটি অনুলিপি-পেস্ট সমাধান চান তবে পুনরায় অনুসন্ধান আইটি ইঞ্জিন নিম্নলিখিত পরামর্শ দিয়েছেন:

sudo apt install -y byobu
sudo purge-old-kernels -y --keep 1
sudo apt-get -y autoremove --purge

3
আমার ক্ষেত্রে এন্টি একটি মুলতুবি কার্নেলের কারণে কাজ করছে না এবং প্রস্তাবিত
জেমস বওয়ারি

Askubuntu.com/a/304388/284313 দিয়ে আমাকে প্রথমে ভাঙা প্যাকেজগুলি ঠিক করতে হয়েছিল তার পরে আপনার সমাধানটি কাজ করেছিল।
জেমস বুওয়ারি

3
আমি মনে করি এটি এখন পর্যন্ত গ্রহণযোগ্য সমাধান হওয়া উচিত।
ফ্রান মারজোয়া

3
এটি গৃহীত উত্তরের চেয়ে অনেক বেশি নিরাপদ। apt-get autoremove --purgeযদিও আমার মনে হয় যথেষ্ট হওয়া উচিত।
উড্রো বার্লো

7

আমি দেখতে পেয়েছি যে ছোট পার্টিশনটি ত্যাগ করে মূলটিতে চলে যাওয়া অনেক সহজ /boot। এটি ভবিষ্যতে কোনও স্থান সমস্যা থেকেও বাধা দেয়।

বুট পার্টিশন থেকে আপনার ডেটাটি প্রথমে রুটে স্থানান্তর করুন (চলুন sudo -s):

cp -a /boot /boot2
umount /boot
rmdir /boot
mv /boot2 /boot

/bootএন্ট্রি সরান (বা মন্তব্য) /etc/fstab:

vim /etc/fstab

গ্রাব আপডেট করুন এবং নিশ্চিত করুন যে সবকিছু ঠিক আছে:

update-grub

apt এখন সমস্যা ছাড়াই আপগ্রেড করতে সক্ষম হওয়া উচিত।

এটি একটি অব্যবহৃত 200 মিমি পার্টিশন ছেড়ে দেয় (যা আপনি যদি সমস্যাটি মনে করেন তবে আপনি অন্য কোনও কিছুর জন্য এটি ব্যবহার করতে পারেন)।


5
এটি একটি ভাল ধারণা, তবে আপনি যদি আপনার মূল বিভাজনের জন্য ফুল-ডিস্ক এনক্রিপশন করতে চান তবে কাজ করে না।
পাওলো ইবারম্যান

হ্যাঁ এমন কিছু ঘটনা রয়েছে যেখানে / বুটের একটি পৃথক পার্টিশন হওয়া উচিত। আর একটি উদাহরণ হ'ল গ্রুব আগে কোনও এলভিএম পার্টিশন থেকে লোড করতে অক্ষম ছিল।
বুরূজ

4

পুরানো কার্নেলগুলি অপসারণ করা হচ্ছে (বুট-এ স্পেস ফাঁকা করার জন্য) দেখুন: http://askubuntu.com/questions/89710/how-do-i-free-up-more-space-in-boot

sudo apt-get purge $(dpkg -l linux-{image,headers}-"[0-9]*" | awk '/ii/{print $2}' | grep -ve "$(uname -r | sed -r 's/-[a-z]+//')")

তারপরে দৌড়াও

sudo apt-get update

1
এই একমাত্র তিনি কাজ করেছিলেন .... দুর্দান্ত সমাধান
জন

সেরা উত্তর! এটিই আমার জন্য কাজ করা একমাত্র সমাধান; অটোরমোভ বোকা; এটি আনুষ্ঠানিকভাবে কোনও কার্নেলগুলি আনুষ্ঠানিকভাবে অপসারণের আগে পুনরায় ইনস্টল করার চেষ্টা করে। আমি বার বার স্থান ছাড়িয়ে চেনাশোনাগুলিতে যাচ্ছিলাম। এই উত্তরটি সোনার।
লনি সেরা

3

sudo apt-get autoremove

এটি শেষ 2 টি কার্নেল ছাড়া সমস্ত অপসারণ করে। উবুন্টু ১.0.০৪ এলটিএস-তে পরীক্ষিত যখন /boot100% ক্ষমতা ছিল এবং apt-get upgradeএটি শেষ কার্নেল আপগ্রেডে ব্যর্থ হয়েছিল। কার্নেল অটোরমোভটি পুনরাবৃত্ত হয়, সুতরাং আপনি যদি বেশ কয়েকটি কার্নেল পেয়ে থাকেন তবে সেগুলি একবারে একটি করে সরানো হবে। সুতরাং ধৈর্য ধরুন।


1

আপনি যখন কোনও সরঞ্জাম দিয়ে এটি করতে পারেন তখন কেন এটি হাতছাড়া করবেন? আপনি জানেন যে এটি আবার 30 সেকেন্ডের মধ্যে আপনার প্রয়োজন হবে, কারণ আজকাল তাদের জন্য একটি নতুন কার্নাল আপডেট ঠেকাতে 30 সেকেন্ড সময় লাগে = পি

আমি এই সরঞ্জামটি ব্যবহার করার পরামর্শ দিচ্ছি, বুটনোকেম

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

তারপর

sudo bootnukem --dry-run

--dry-runএকবারে নিশ্চিত হয়ে গেলে এটি নিরাপদ দেখাচ্ছে Remove

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