কেন ইনস্টল করা কার্নেলগুলির পুরানো initrd ফাইলগুলি / বুট পার্টিশন পূরণ করছে?


13

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

root@Jacobi:/boot# ls -lah
insgesamt 202M
drwxr-xr-x  3 root root 3,0K Jan 30 10:03 .
drwxr-xr-x 25 root root 4,0K Jan 30 10:03 ..
-rw-r--r--  1 root root 1,2M Dez 11 15:36 abi-4.4.0-104-generic
-rw-r--r--  1 root root 1,2M Jan  9 22:28 abi-4.4.0-109-generic
-rw-r--r--  1 root root 1,2M Jan 19 14:06 abi-4.4.0-112-generic
-rw-r--r--  1 root root 187K Dez 11 15:36 config-4.4.0-104-generic
-rw-r--r--  1 root root 187K Jan  9 22:28 config-4.4.0-109-generic
-rw-r--r--  1 root root 187K Jan 19 14:06 config-4.4.0-112-generic
drwxr-xr-x  5 root root 1,0K Jan 30 10:03 grub
-rw-r--r--  1 root root  10M Jan 30 10:03 initrd.img-3.13.0-39-generic
-rw-r--r--  1 root root  10M Jan 30 10:02 initrd.img-4.4.0-101-generic
-rw-r--r--  1 root root  10M Jan 30 10:02 initrd.img-4.4.0-103-generic
-rw-r--r--  1 root root  38M Jan 30 10:02 initrd.img-4.4.0-104-generic
-rw-r--r--  1 root root  38M Jan 30 10:02 initrd.img-4.4.0-109-generic
-rw-r--r--  1 root root  10M Jan 30 10:03 initrd.img-4.4.0-38-generic
-rw-r--r--  1 root root  10M Jan 30 10:03 initrd.img-4.4.0-45-generic
-rw-r--r--  1 root root  10M Jan 30 10:02 initrd.img-4.4.0-59-generic
-rw-r--r--  1 root root  10M Jan 30 10:02 initrd.img-4.4.0-77-generic
-rw-r--r--  1 root root  10M Jan 30 10:02 initrd.img-4.4.0-78-generic
-rw-r--r--  1 root root  10M Jan 30 10:02 initrd.img-4.4.0-81-generic
-rw-r--r--  1 root root 179K Jan 28  2016 memtest86+.bin
-rw-r--r--  1 root root 181K Jan 28  2016 memtest86+.elf
-rw-r--r--  1 root root 181K Jan 28  2016 memtest86+_multiboot.bin
-rw-------  1 root root 3,8M Dez 11 15:36 System.map-4.4.0-104-generic
-rw-------  1 root root 3,8M Jan  9 22:28 System.map-4.4.0-109-generic
-rw-------  1 root root 3,8M Jan 19 14:06 System.map-4.4.0-112-generic
-rw-------  1 root root 6,8M Dez 11 15:36 vmlinuz-4.4.0-104-generic
-rw-------  1 root root 6,8M Jan  9 22:28 vmlinuz-4.4.0-109-generic
-rw-------  1 root root 6,8M Jan 19 14:06 vmlinuz-4.4.0-112-generic

তবে কেবল লিনাক্স-চিত্র -4.4.0-104-জেনেরিক এবং লিনাক্স-চিত্র -4.4.0-109-জেনেরিক ইনস্টল করা আছে:

root@Jacobi:/boot# dpkg -l linux-image-\* | grep ^ii
ii  linux-image-4.4.0-104-generic       4.4.0-104.127 amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-4.4.0-109-generic       4.4.0-109.132 amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-extra-4.4.0-104-generic 4.4.0-104.127 amd64        Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-extra-4.4.0-109-generic 4.4.0-109.132 amd64        Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP

আমি যদি অপ্রয়োজনীয় initrd ফাইলগুলি ম্যানুয়ালি মুছে ফেলি তবে আমি একটি আপগ্রেড করার চেষ্টা করার সাথে সাথে এগুলি আবার তৈরি করা হবে again

এই সমস্যার কারণ কী হতে পারে এবং কীভাবে আমি স্থায়ীভাবে এই ফাইলগুলি থেকে মুক্তি পেতে পারি?


1
আপনি কীভাবে এই সংস্করণগুলির সাথে সম্পর্কিত প্যাকেজগুলি সরিয়েছেন?
মুড়ু

1
@ মুরু আমি অন্য কোনও উপায়ে এটি করা ছাড়া মনে করতে পারছি না, সেগুলি পরিষ্কার করার চেয়ে apt-get autoremove
ব্যবহারকারী5950 10

উত্তর:


12

আপনার সাথে আংশিকভাবে সরানো কার্নেলগুলি পরীক্ষা করা উচিত

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

এবং উদাহরণস্বরূপ এগুলি মুছে ফেলুন sudo apt-get purge linux-image-4.4.0-101-generic

ক্রিজিং এর মাধ্যমে ইআরআইআরএমএস প্রজন্মের নিয়ম সরিয়ে দেবে /var/lib/initramfs-tools/

যদি এটি সহায়তা না করে তবে আপনি সেগুলি নিজে থেকে initramfs তালিকা থেকে মুছে ফেলতে পারেন:

sudo rm /var/lib/initramfs-tools/3.13.0-39-generic
sudo rm /var/lib/initramfs-tools/4.4.0-101-generic
sudo rm /var/lib/initramfs-tools/4.4.0-103-generic
sudo rm /var/lib/initramfs-tools/4.4.0-38-generic
sudo rm /var/lib/initramfs-tools/4.4.0-45-generic
sudo rm /var/lib/initramfs-tools/4.4.0-59-generic
sudo rm /var/lib/initramfs-tools/4.4.0-77-generic
sudo rm /var/lib/initramfs-tools/4.4.0-78-generic
sudo rm /var/lib/initramfs-tools/4.4.0-81-generic

সাধারণত আমি purge-old-kernelsঅনুসরণ করি sudo apt-get autoremoveকেবলমাত্র দুটি সাম্প্রতিক কার্নেল রয়েছে।

আপনি ইনস্টল করা কার্নেলগুলি তাদের initramfses দিয়ে পুনরায় ইনস্টল করতে পারেন:

sudo apt-get install --reinstall \
$(dpkg -l linux-image-\* | grep ^ii | awk '{print $2}')

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

যেমনটি আমি পড়েছি, rmরিলেটেড initrdবা কার্নেল বা শিরোলেখগুলির যে কোনও কিছুর জন্য ব্যবহার করা খারাপ ফর্ম । কিছু কমান্ড উপলব্ধ আছে যা আপনার জন্য আংশিকভাবে মুছে ফেলা কার্নেল / শিরোনাম / initrd.img ফাইলগুলি অপসারণ পরিচালনা করবে। দেখুন update-initramfs। আরও তথ্যের জন্য নীচে আমার উত্তর দেখুন।
ড্যানিয়েল

2

যদি আপনি ইতিমধ্যে ব্যবহার করে থাকেন তাহলে dpkgকার্নেলের / হেডার থেকে দূর করে দিতে এবং যদি আপনি ইতিমধ্যে পরীক্ষা করেছি dpkg -lকার্নেলের দেখতে না এবং এখনও / হেডার সেখানে ইনস্টল, কিন্তু আপনি এখনও এই পুরাতন কার্নেলের উল্লেখ দেখতে মধ্যে /bootআকারে initrd-imgফাইল, তারপর সঠিক পথ এই রেফারেন্স এবং ফাইলগুলি মুছে ফেলার জন্য update-initramfsকমান্ডটি রয়েছে।

উদাহরণস্বরূপ, আপনি যদি কেবল 4.4.0-109ইনস্টল করে থাকেন তবে এখনও আপনি নিম্নলিখিতটি দেখতে পান /boot:

-rw-r--r--  1 root root  10M Jan 30 10:02 initrd.img-4.4.0-103-generic
-rw-r--r--  1 root root  38M Jan 30 10:02 initrd.img-4.4.0-104-generic
-rw-r--r--  1 root root  38M Jan 30 10:02 initrd.img-4.4.0-109-generic

আপনি নিশ্চিন্তে অপসারণ করতে পারেন 4.4.0-104এবং 4.4.0-103থেকে /bootনিম্নলিখিত কমান্ডের সাহায্যে:

$ sudo update-initramfs -d -k 4.4.0-103-generic
$ sudo update-initramfs -d -k 4.4.0-104-generic
$ sudo update-initramfs -c -k all

প্রথম দুটি কমান্ড initramfsপ্রজন্মের বিধিগুলিতে সেই ফাইলগুলির পাশাপাশি সেই কার্নেলগুলির উল্লেখগুলি মুছে দেয় /boot। শেষ কমান্ড initramfs কে initrd.imgআপডেট বিধিগুলির উপর ভিত্তি করে ফাইলগুলি পুনরায় তৈরি করতে বলে tells

তাত্ত্বিকভাবে আপনিও ব্যবহার করতে পারেন

$ sudo update-initramfs -d -k 4.4.0-{103,104}-generic

একসাথে একাধিক কার্নেল মুছতে, কিন্তু কোনও কারণে এটি আমার পক্ষে কার্যকর হয়নি।


+1 - এতিম দীক্ষিতদের জন্য এটি সঠিক পদ্ধতি (এবং উত্তর)।
বুশিয়া

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