fdisk -l 16 টি র‌্যাম ডিস্ক / দেব / র‌্যাম0… / র‌্যাম 15 দেখায়


17

আমি যখন 15.10 এ আপগ্রেড করেছি তখন থেকে fdisk -l16 টি রাম ডিস্ক ( /dev/ram0... /dev/ram15) রিপোর্ট করে । এগুলির জন্য কী প্রয়োজন তা আমি কিছুটা নিশ্চিত। এগুলি মুছে ফেলা কি নিরাপদ? যদি তা না হয় তবে আমি কীভাবে সেই fdisk আউটপুট থেকে মুক্তি পাব?

উত্তর:


13

লিনাক্স সিস্টেমে এটি পুরোপুরি স্বাভাবিক। র‌্যাম ডিস্কগুলির প্রয়োজন হওয়া উচিত এটির জন্য এটি একটি প্রস্তুতিমূলক পদক্ষেপ। তাদের প্রত্যেকের একটি আকার খুব কম 64 মান রয়েছে Mi প্রয়োজনে আকারটি স্বয়ংক্রিয়ভাবে বৃদ্ধি করা হবে।

হঠাৎ কেন উইলিতে 16 টি র‌্যাম ডিস্ক পাওয়া যায়, কেবলমাত্র অসুবিধা দিয়ে ব্যাখ্যা করা যেতে পারে।

আমি এখানে ডিফল্ট র‌্যাম ডিস্ক পরীক্ষা করেছি:

  • CentOS 7 - কোনও রাম ডিস্ক নেই
  • ফেডোরা 23 - কোনও র‌্যাম ডিস্ক নেই
  • উবুন্টু 14.04 - কোনও র‌্যাম ডিস্ক নেই
  • রাস্পবিয়ান জেসি - 16 টি র‌্যাম ডিস্ক (4MiB)

সূত্র

র‌্যাম ডিস্ক ড্রাইভার একটি প্রধান ডিভাইস হিসাবে ব্লক ডিভাইস হিসাবে ব্যবহার করার একটি উপায়। রুট ফাইল সিস্টেম অ্যাক্সেস করার জন্য আপনাকে মডিউলগুলি লোড করতে হবে তবে initrd এর জন্য এটি একটি প্রাথমিক ফাইল সিস্টেম ব্যবহার করা প্রয়োজন (ডকুমেন্টেশন / initrd.txt দেখুন)। এটি ক্রিপ্টো কাজের জন্য একটি অস্থায়ী ফাইল সিস্টেমের জন্যও ব্যবহার করা যেতে পারে, যেহেতু সামগ্রীগুলি পুনরায় বুটে মুছে ফেলা হয়।

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

র‌্যাম ডিস্কটি ডিফল্টরূপে 16 টি র‌্যাম ডিস্ক সমর্থন করে এবং সীমাহীন র‌্যাম ডিস্ককে সমর্থন করার জন্য পুনরায় কনফিগার করা যেতে পারে (নিজের ঝুঁকিতে)। ব্লক ড্রাইভার কনফিগারেশন মেনুতে কেবল কনফিগারেশন প্রতীক BLK_DEV_RAM_COUNT পরিবর্তন করুন এবং (পুনরায়) কার্নেলটি তৈরি করুন।


এবং এটি 15.04 থেকে 15.10 এ পরিবর্তিত হয়েছে?
RudiC

4
মনে রাখবেন যে আপনি যদি তাদের কাছে কখনও কিছু না লেখেন তবে তারা কোনও স্মৃতি ব্যবহার করে না। পরিবর্তিত হয়েছে বলে মনে হচ্ছে যে কার্নেলটি / proc / পার্টিশনে র‌্যামডিস্কগুলি তালিকাভুক্ত করার জন্য ব্যবহৃত হত না, তবে এখন তাদের উপর fdisk -l রিপোর্ট করে।
psusi

@ রডিসি: আপনি খ্যাতি হিসাবে 6 জন ব্যবহারকারী: যদি এই উত্তরটি আপনাকে সহায়তা করে তবে এই পাঠ্যের বামদিকে ধূসর click ক্লিক করতে ভুলবেন না , যার অর্থ হ্যাঁ, এই উত্তরটি বৈধ ! ;-)
ফ্যাবি

1
আমাকে মনে করার জন্য ধন্যবাদ. উত্তরগুলি আলোকিত করছিল, পরিস্থিতি ব্যাখ্যা করছিল, সুতরাং তাদের জন্য ধন্যবাদ। দুর্ভাগ্যক্রমে, আমি এখনও কীভাবে সেই অগোছালো ঝামেলার আউটপুটটি দমন করতে পারি তার কোনও ক্লু আমার কাছে নেই।
RudC

শুধু এফওয়াইআই - ভ্যানিলা ডিবিয়ান জেসি পরীক্ষা করা হয়েছে এবং আপনি রাস্পিয়ান জেসির পক্ষে একই ফলাফল পেয়েছেন।
আপক্রিক 13

12

কেন fdisk হঠাৎ / dev / ram রিপোর্ট করছে তা ধারণা নেই।

তবে আপনি fdisk কে কেবল নির্দিষ্ট ডিভাইসগুলির প্রতিবেদন করতে বলতে পারেন।

fdisk -l /dev/sd*

আসল ড্রাইভ তালিকাভুক্ত করা হবে।

বিকল্পভাবে আপনি বিভক্ত এবং lsblk ব্যবহার করতে পারেন।

এখানে একটি ড্রাইভের জন্য ভাগ করা আউটপুট।

Model: ATA Samsung SSD 840 (scsi)
Disk /dev/sda: 120GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type      File system  Flags
 1      2096kB  120GB   120GB   extended               boot
 7      2097kB  26.2GB  26.2GB  logical   ext4
 5      26.2GB  36.7GB  10.5GB  logical   ext4
 6      36.7GB  47.2GB  10.5GB  logical   ext4

সংশ্লিষ্ট lsblk আউটপুট

    NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 111.8G  0 disk 
├─sda1   8:1    0     1K  0 part 
├─sda5   8:5    0   9.8G  0 part /mnt/Links
├─sda6   8:6    0   9.8G  0 part 
└─sda7   8:7    0  24.4G  0 part /

1
লক্ষ্য করুন যে কয়েকটি বাক্সে (এসিপিআই সংস্করণ?) শারীরিক ডিভাইসগুলি h d *, s d * নয়।
বিড়াল

8

আমি জানি যে এই থ্রেডটি পুরানো, তবে আমি সম্প্রতি এটি পেরিয়ে এসেছি। স্ল্যাকওয়্যার ইনস্টল করার পরে 14.2 এর আউটপুটে আমি একই 16 টি র‌্যাম ডিস্ক পেয়েছি fdisk -l। আমি আরও কিছুক্ষন তদন্ত করে দেখতে পেলাম যে 'ইউজার-লিনাক্স' প্যাকেজে, যা fdisk (অন্যদের মধ্যে) অংশ, fdisk যা ব্লক ডিভাইস হিসাবে বিবেচনা করে সেটির বিক্রয় যথেষ্ট পরিবর্তন হয়েছে। ইউট-লিনাক্স প্যাকেজ সংস্করণ ২.২১ এ এই রিপোর্টটি রিপোর্ট করা ডিস্ক জ্যামিতির উপর ভিত্তি করে রয়েছে এবং বর্তমান সংস্করণে ২.72২ / proc / পার্টিশনের আউটপুট পার্স করা হয়েছে। ইন্টারনেটে আমার অনুসন্ধান অনুসারে কার্নেল ২.৪-এর পর থেকে র‌্যামডিস্কগুলি লিনাক্সে রয়েছে, fdisk কেবল সেগুলি প্রদর্শন করে নি। যেহেতু আমি অনেকগুলি "ডিস্ক" এর তালিকা থেকে বিরক্ত হয়েছি, যা কোনও আসল ডিস্ক নয়, তাই fdisk এর জন্য আমি একটি প্যাচ তৈরি করেছি:

    diff -Nur util-linux-2.27.1_ori/disk-utils/fdisk-list.c util-linux-2.27.1_fdisk-no-ram-disks/disk-utils/fdisk-list.c
--- util-linux-2.27.1_ori/disk-utils/fdisk-list.c   2015-10-06 08:59:51.572589724 +0200
+++ util-linux-2.27.1_fdisk-no-ram-disks/disk-utils/fdisk-list.c    2016-08-16 15:55:14.840952091 +0200
@@ -312,6 +312,10 @@
        if (devno <= 0)
            continue;

+       /* dont list RAM disks */
+       if (strstr(line, "ram") && devno >= 256)
+           continue;
+
        if (sysfs_devno_is_lvm_private(devno) ||
            sysfs_devno_is_wholedisk(devno) <= 0)
            continue;

হতে পারে এটি অন্য কিছুকে সহায়তা করে ...


1
এটি আপনাকে পুনরায় কম্পাইল করতে বাধ্য করেfdisk

5

জোহানিসের পোস্টটি সঠিক। র‌্যাম-ডিস্কগুলি দীর্ঘ দিন ধরে কার্নেলে ছিল, এটি fdisk এর আচরণটি পরিবর্তিত হয়েছিল। Fdisk প্যাচিংয়ের পরিবর্তে, সমস্যাটি পরিচালনা করার জন্য আমি একটি সহজ পার্ল স্ক্রিপ্ট (কোডের 5 টি লাইন, 6 মন্তব্য লাইন) লিখেছি। আমি এটি put ~/bin/fdisk-lুকিয়ে দিয়েছি এবং এখন আমার মনে আছে যে এবং এর মধ্যে কোনও স্থান স্থাপন করা উচিত নয়fdisk-l

#! /usr/bin/perl -w
# Run fdisk -l and filter out the 16 /dev/ram devices.
# Sun Mar 5 16:13:45 2017. Jeff Norden, jeff(at)math.tntech.edu

$_=`sudo fdisk -l`;  #include sudo we don't have to be root

# weed out ram disks. The seemingly contradictory s (single) and m (multiline)
# flags allow "." to match "\n" and "^" to match at all beginning-of-lines.
s|^Disk /dev/ram.*?\n\n\n||smg;

# Do better than blank lines separating devices. Handle odd cases when there
# are more than two blank lines between devices or none at the end.
$hrule= '='x60 . "\n";
s/(\n\n\n+)|(\n+$)/\n$hrule/g;
print($hrule, $_);

এপ্রিল 2017 পর্যন্ত, রাম ডিস্কগুলি বর্তমান উবুন্টু কার্নেলের সাথে ডিফল্টরূপে আর উপস্থিত হবে না, সুতরাং এই সমস্যাটি সমাধান হয়েছে। দেখুন: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1593293


0

এই আচরণটি কার্নেল বিকল্প দ্বারা নিয়ন্ত্রিত হয় যা আপনি কেবলমাত্র একটি কাস্টম কার্নেল পুনরায় সংশোধন করে পরিবর্তন করতে পারবেন। আপনি GRUB পরামিতি ramdisk_size ব্যবহার করে র্যাম * ডিভাইসগুলির আকার পরিবর্তন করতে পারেন তবে গণনাটি নয়। এটি অকেজো, কারণ আপনার মেমরি প্রচুর পরিমাণে থাকলেও প্রতিটি রামডিস্ক আপনার আকার নির্ধারণের আকারে বাড়বে। সুতরাং উদাহরণস্বরূপ আপনি যদি একটি 8 গিগাবাইট র‌্যামডিস্ক চান - যা আমি করি, নীচে দেখুন - আপনি 16x 8GB উদাহরণ পাবেন। আপনি যদি তাদের বেশিরভাগটি ব্যবহার না করেন তবে এটি নির্দোষ কিনা তা আমি জানি না, তবে আমি যদি আমার সিস্টেমটি এটি না করে তবে ইট তুলতে নারাজ।

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

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

যেহেতু র‌্যাম হ'ল এসএসডি এর চেয়ে দ্রুতগতির অর্ডার, এটি একটি জয় হওয়া উচিত, তবে আমি এটি চেষ্টা করতে পারি না। যেমন অন্যরা লক্ষ্য করেছে, আপনি যদি tmpfs দিয়ে একটি RAID1 তৈরি করেন তবে এটি বুটে পুনরায় মিলবে না কারণ tmpfs প্রারম্ভিক ধাপটি বুট প্রক্রিয়াতে অনেক দেরি করে - মাউন্টল এ। আপনার এমডিস ততক্ষণে ভাল এবং সত্যই নির্মিত হয়েছে, তাই এটি ব্যর্থ হয় এবং আপনাকে এটি ম্যানুয়ালি পুনর্নির্মাণ করতে হবে।

OTOH / dev / ram * ডিভাইসগুলি এর জন্য উপযুক্ত - যদি আপনি সেগুলি কনফিগার করতে পারেন। এগুলি হ'ল প্রথম জিনিস যা সেট আপ হয় এবং ram0 হল প্রাথমিক / ফাইল সিস্টেম yste


এটি একটি ভাল উত্তর। দয়া করে "বর্ধিতকরণ অনুরোধ" মুছে ফেলুন, কারণ এটি উত্তরের পক্ষে উপযুক্ত নয়।

আমি এখনও বর্ধিতকরণের অনুরোধ করতে চাই। সবচেয়ে ভালো উপায় কি?
mrchuck
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.