আমি কীভাবে CentOS 7 এ পুরানো কার্নেল সংস্করণগুলি নিরাপদে মুছব?


15

আমি সেন্টোস in এ প্রতিদ্বন্দ্বী কার্নেলের ফলে উদ্ভট লক্ষণগুলির মুখোমুখি হতে পারি So সুতরাং আমি কীভাবে পুরানো কার্নেলগুলি নিরাপদে মুছব? এবং আমি কীভাবে জানব যে কোনও কার্নেলটি সর্বাধিক নতুন?

নীচে টার্মিনাল আউটপুটটি আমি এই মুহুর্তে যখন প্রশ্নটিতে সার্ভারে এটি গবেষণা করি। নোট করুন যে আমি প্যাকেজ-ক্লিনআপ চেষ্টা করেছি কিন্তু এটি একই 2 টি কার্নেল ছেড়ে দেয়:

এই টিউটোরিয়ালের নির্দেশাবলী বলেছে যে নিম্নলিখিত দুটি কমান্ডের আউটপুট মেলানো উচিত তবে আপনি দেখতে পাচ্ছেন যে রিবুট করার পরেও সেগুলি মেলে না:

[root@localhost ~]# rpm -qa kernel |sort -V |tail -n 1
kernel-3.10.0-229.el7.x86_64
[root@localhost ~]# uname -r
3.10.0-229.14.1.el7.x86_64

বাকি কমান্ডগুলি নিশ্চিত করে যে দুটি কার্নেল রয়েছে এবং পুরানোটি মুছতে চেষ্টাগুলি চিত্রিত করে।

[root@localhost ~]# cd /usr/src/kernels
[root@localhost kernels]# ls -al
total 16
drwxr-xr-x.  4 root root 4096 Oct  2 12:55 .
drwxr-xr-x.  4 root root 4096 Oct  2 13:15 ..
drwxr-xr-x. 22 root root 4096 Oct  2 12:55 3.10.0-229.14.1.el7.x86_64
drwxr-xr-x. 22 root root 4096 Oct  2 12:35 3.10.0-229.el7.x86_64
[root@localhost kernels]# rpm -q kernel
kernel-3.10.0-229.el7.x86_64
kernel-3.10.0-229.14.1.el7.x86_64
[root@localhost kernels]# package-cleanup --oldkernels=1
Loaded plugins: fastestmirror
Usage: 
    package-cleanup: helps find problems in the rpmdb of system and correct them

    usage: package-cleanup --problems or --leaves or --orphans or --oldkernels
Command line error: --oldkernels option does not take a value
[root@localhost kernels]# package-cleanup --oldkernels
Loaded plugins: fastestmirror
No old kernels to remove
[root@localhost kernels]# rpm -q kernel
kernel-3.10.0-229.el7.x86_64
kernel-3.10.0-229.14.1.el7.x86_64
[root@localhost kernels]# 

আমি ওপেন /etc/yum.confএবং সেট করেছি installonly_limit=1, তবে এর ফলে পরবর্তী yum updateকমান্ডের ত্রুটির ফলে বলা হয়েছিল যে 1 এর জন্য গ্রহণযোগ্য মানের সীমা ছাড়াই installonly_limit

আমি ধরে নিলাম যে 3.10.0-229.14.1.el7.x86_64এটি সবচেয়ে নতুন তবে আমি এটি কীভাবে জানতে পারি? এছাড়াও, বুট বিকল্পগুলি বেছে নিতে একাধিক কার্নেল সরবরাহ করে বলে মনে হচ্ছে। বিকল্পগুলির তালিকায় সিস্টেমটি প্রথম কার্নেল থেকে স্বয়ংক্রিয়ভাবে বুট হলে বিভ্রান্তির সুযোগগুলি আরও খারাপ হয়।

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


দরজা দিয়ে হাঁটছি যাতে আমি এখনই পুরো উত্তরটি লিখতে পারি না। পরে আবার চেক করার চেষ্টা করবে। yum-utils এটি করত (এটি এখনও নিশ্চিত কিনা তা নিশ্চিত নয়)। if-not-true-then-false.com/2012/…
0xSheepdog

@ 0xSheepdog হ্যাঁ, আমি অনুরূপ টিউটোরিয়াল থেকে এই আদেশগুলি ব্যবহার করছি, তবে CentOS 7 সার্ভারটি অনুমতি দিবে না installonly_limit=1। আমি মজার লক্ষণগুলি পেয়ে যাচ্ছি যেগুলি দুটি কার্নেল সংস্করণ হতে পারে, সুতরাং আমি কেবল একটি সংস্করণ চাই, যদি সম্ভব হয় তবে কমপক্ষে 2 টিরও কম সংস্করণ কেন পাওয়া সম্ভব নয় তার একটি স্পষ্ট ব্যাখ্যা দিতে চাই আসলে এটা সম্ভব না।
কোডমেড

2
আমি আপনার "কিপ" মানদণ্ডকে "বুট করা কার্নেল" তে পরিবর্তন করার পরামর্শ দিচ্ছি কেবলমাত্র নতুনের বিপরীতে - বিভিন্ন কারণে আপনি সম্ভবত নতুন কার্নেলটিতে বুট না করে চলেছেন।
জেফ শ্যাচলার

উত্তর:


23

package-cleanup --oldkernels --count=1 সর্বশেষ ব্যতীত সমস্ত কার্নেলগুলি মুছুন।


1
সংক্ষিপ্ত উত্তরের জন্য ফ্র্যাক্টাল টার্টল ধন্যবাদ। আমি আপনাকে কমপক্ষে দুটি সর্বশেষতম কার্নেল নিরাপদে রাখতে চাই। package-cleanup --oldkernels --count=2
রঙ্গসীমন

1
আমি দৌড়াচ্ছি package-cleanup --oldkernels --count=1। রিবুট করার পরে, আমি এখনও দুটি কার্নেল পেয়েছি: CentOS Linux (4.4.6-1.el7.elrepo.x86_64) 7 (Core)এবং CentOS Linux (3.10.0-514.2.2.el7.x86_64) 7 (Core), আপনি কীভাবে কেবল একটি রাখবেন তা জানেন?
রন

@ রন এর প্রশ্নের উত্তর কেউ দিতে পারেন?
আলিরেজা মোহাদামি

1
fyi, প্যাকেজ-ক্লিনআপ এর অংশ:yum install yum-utils
TiloBunt

8

কমান্ডটি package-cleanupপুরানো কার্নেল অপসারণ করে। সর্বাধিক --count=1সর্বশেষতম রাখতে ব্যবহার করুন । প্রোগ্রামটি বর্তমানে ব্যবহৃত কার্নেলটি কখনই মুছে ফেলবে না ("কার্নেলটি অপসারণ করছে না 3.10.0-327.el7 কারণ এটি চলমান কার্নেল"), সুতরাং আপনি / বুটে দুটি কার্নেল দিয়ে শেষ করতে পারেন ... যতক্ষণ না আপনি পুনরায় বুট করেন এবং পুনরায় চালু না করেন কমান্ড চালাও।

কমান্ডটি তাই

package-cleanup --oldkernels --count=1 

ম্যানপেজ নথির তিনটি বিকল্প:

--oldkernels
          Remove old kernel and kernel-devel packages.
--count <COUNT>
          Number of duplicate/kernel packages to keep on the system (default 2)
--keepdevel
          Do not remove kernel-devel packages when removing kernels

2

ব্যবহার yum upgradeপরিবর্তেyum update

তারপরে এটি কেবল তিনটি কার্নেল রাখবে। আপনি যদি ব্যবহার করেন updateতবে এটি আপনার পূরণ করবে/boot


-1

অনুযায়ী এই :

চালান rpm -q kernelইনস্টল করা কার্নেল দেখানোর জন্য

তারপর চালান yum remove kernel <shown kernel from output above> কার্নেলটি অপসারণ করতে

আপনার কম্পিউটার পুনরায় বুট করুন

সম্পাদনা করুন: এটি @ রনের সমস্যার জন্য সত্যই কাজ করে তবে নিশ্চিত করুন যে এলরেপো কার্নেলটি সঠিকভাবে চলছে কিনা


আপনি কীভাবে আপনার বর্তমান কার্নেলটি অপসারণ করবেন?
জেফ শ্যাচলার

IDK নির্দিষ্ট কমান্ডটির জন্য @ জেফচ্যাচালার আমার ধারণা, আপনি বর্তমান কার্নেলটি অপসারণ করছেন না তা নিশ্চিত করার জন্য, প্রথমে uname -rঅব্যবহৃত কার্নেলটি মুছে ফেলা ব্যবহার করে এটি পরীক্ষা করে দেখুন, কিন্তু কমান্ড থেকে দেখানো হয়েছে,
সূর্য স্টেফানাস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.