fdisk -l 16 राम डिस्क / देव / ram0… / ram15 दिखाता है


17

जब से मैंने १५.१० में अपग्रेड किया है, fdisk -l१६ रैम डिस्क ( /dev/ram0... /dev/ram15) की रिपोर्ट करता है । मैं थोड़ा अनिश्चित हूं कि उन लोगों के लिए क्या आवश्यक है। क्या उन्हें हटाना सुरक्षित है? यदि नहीं, तो मैं उस fdisk आउटपुट से कैसे छुटकारा पा सकता हूं?

जवाबों:


13

यह लिनक्स सिस्टम पर पूरी तरह से सामान्य है। यह इस मामले के लिए एक प्रारंभिक कार्रवाई की तरह है कि रैम डिस्क की आवश्यकता होनी चाहिए। उनमें से प्रत्येक का आकार 64 MiB है, बहुत कम मूल्य। यदि आवश्यक हो, तो आकार स्वचालित रूप से बढ़ जाएगा।

विली में अचानक 16 रैम डिस्क क्यों उपलब्ध हैं, केवल कठिनाई के साथ समझाया जा सकता है।

मैंने डिफ़ॉल्ट रैम डिस्क का परीक्षण किया है:

  • CentOS 7 - कोई रैम डिस्क नहीं
  • फेडोरा 23 - कोई रैम डिस्क नहीं
  • Ubuntu 14.04 - कोई रैम डिस्क नहीं
  • रस्पियन जेसी - 16 रैम डिस्क (4MiB)

स्रोत

RAM डिस्क ड्राइवर ब्लॉक डिवाइस के रूप में मुख्य सिस्टम मेमोरी का उपयोग करने का एक तरीका है। यह initrd के लिए आवश्यक है, एक प्रारंभिक फाइल सिस्टम का उपयोग किया जाता है यदि आपको रूट फाइल सिस्टम तक पहुंचने के लिए मॉड्यूल लोड करने की आवश्यकता होती है (देखें दस्तावेज़ीकरण / initrd.txt)। यह क्रिप्टो काम के लिए एक अस्थायी फाइल सिस्टम के लिए भी इस्तेमाल किया जा सकता है, क्योंकि सामग्री रिबूट पर मिटा दी जाती है।

अधिक स्थान की आवश्यकता होने पर RAM डिस्क गतिशील रूप से बढ़ती है। यह बफ़र कैश से रैम का उपयोग करके करता है। ड्राइवर बफ़र्स को चिह्नित करता है जिसे वह गंदे के रूप में उपयोग कर रहा है ताकि वीएम सबसिस्टम बाद में उन्हें पुनः प्राप्त करने का प्रयास न करे।

रैम डिस्क डिफ़ॉल्ट रूप से 16 रैम डिस्क का समर्थन करता है, और असीमित संख्या में रैम डिस्क (अपने जोखिम पर) का समर्थन करने के लिए पुन: कॉन्फ़िगर किया जा सकता है। बस ब्लॉक ड्राइवर कॉन्फ़िगरेशन मेनू में कॉन्फ़िगरेशन प्रतीक BLK_DEV_RAM_COUNT को बदलें और (पुनः) कर्नेल का निर्माण करें।


और यह 15.04 से बदलकर 15.10 हो गया?
रुडिक

4
ध्यान दें कि वे किसी भी मेमोरी का उपयोग नहीं करते हैं यदि आप उन्हें कुछ भी नहीं लिखते हैं जो बदला हुआ लगता है, वह यह है कि कर्नेल का उपयोग ramdisks को / proc / विभाजन में सूचीबद्ध करने के लिए नहीं किया गया था, लेकिन अब करता है, इसलिए उन पर fdisk -l रिपोर्ट करता है।
Psusi

@ रुडीसी: जैसा कि आप एक प्रतिष्ठा 6 उपयोगकर्ता हैं: यदि इस उत्तर ने आपकी मदद की है, तो इस पाठ के बाईं ओर ग्रे पर क्लिक करना न भूलें , जिसका अर्थ है हां, यह उत्तर मान्य है ! ;-)
फैब डे

1
मुझे याद दिलाने के लिये धन्यवाद। जवाब ज्ञानवर्धक थे, स्थिति को समझाते हुए, इसलिए उन लोगों के लिए धन्यवाद। दुर्भाग्य से, मेरे पास अभी भी कोई सुराग नहीं है कि उस गंदे परेशान आउटपुट को कैसे दबाया जाए।
रुडीसी

बस FYI करें - वेनिला डेबियन जेसी की जाँच की, और यह वही परिणाम है जो आपको रास्पियन जेसी के लिए मिला।
१३

12

पता नहीं क्यों fdisk अचानक रिपोर्टिंग / देव / राम है।

हालाँकि आप fdisk को केवल विशिष्ट उपकरणों की रिपोर्ट करने के लिए कह सकते हैं।

fdisk -l /dev/sd*

असली ड्राइव को सूचीबद्ध करेगा।

वैकल्पिक रूप से आप parted और 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
ध्यान दें कि कुछ बक्से (ACPI संस्करणों?) पर भौतिक उपकरणों रहे हैं घ *, नहीं रों d *।
बिल्ली

8

मुझे पता है कि यह धागा पुराना है, लेकिन मैं इसके बारे में हाल ही में आया था। स्लैकवेयर 14.2 स्थापित करने के बाद मुझे आउटपुट में वही 16 रैम डिस्क मिलीं fdisk -l। मैंने थोड़ी और पड़ताल की और पाया कि 'यूज़-लिनेक्स' पैकेज में, जो fdisk (दूसरों के बीच) का हिस्सा है, fdisk को ब्लॉक डिवाइस के रूप में क्या माना जाता है, का बहुत कुछ बदल गया है। उपयोग-लिनेक्स पैकेज संस्करण 2.21 में यह निर्णय रिपोर्ट किए गए डिस्क ज्यामिति पर आधारित है जबकि वर्तमान संस्करण 2.72 में / proc / विभाजन का आउटपुट पार्स किया गया है। इंटरनेट पर मेरी खोजों के अनुसार कर्डी 2.4 के बाद से रामडिस्क लिनक्स में है, 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
यह आपको recompile को मजबूर करता हैfdisk

5

जोहान्स द्वारा पोस्ट सही है। राम-डिस्क लंबे समय से कर्नेल में है, यह fdisk का व्यवहार है जो बदल गया है। Fdisk को पैच करने के बजाय, मैंने समस्या को संभालने के लिए एक सरल पर्ल स्क्रिप्ट (कोड की 5 पंक्तियाँ, 6 टिप्पणी लाइनें) लिखीं। मैंने इसे डाल दिया ~/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 का उपयोग करके RAM * उपकरणों के आकार को बदल सकते हैं, लेकिन गिनती को नहीं। क्योंकि भले ही आप स्मृति के बहुत सारे है यह, बेकार है हर रैमडिस्क जो कुछ भी आकार आप स्थापित करने के लिए वृद्धि होगी। उदाहरण के लिए यदि आप एक 8 जीबी रैमडिस्क चाहते हैं - जो मैं करता हूं, तो नीचे देखें - आपको 16x 8 जीबी इंस्टेंसेस मिलेंगे। मुझे नहीं पता कि यह हानिरहित है यदि आप उनमें से अधिकांश का उपयोग नहीं करते हैं, लेकिन मैं अपने सिस्टम को ईंट करने के लिए अनिच्छुक हूं यदि यह नहीं है।

मैं 8GB हार्ड डिस्क विभाजन के साथ दर्पण के लिए 8GB / dev / ram डिवाइस का उपयोग करना चाहता हूं ताकि उस पर हॉट डिस्क क्षेत्र डाल दिया जा सके। मेरा आवेदन स्वचालित रूप से मुक्त स्थान के आधार पर नियमित भंडारण के लिए ब्लॉक लिखेगा, इसलिए यह कोई फर्क नहीं पड़ता कि यह छोटा है।

Mdadm के तहत लिखने के पीछे के साथ, यह तेजी से धधकते हुए लिखते हुए लिखने का प्रभाव होना चाहिए, क्योंकि दर्पण दर्पण के एचडीडी पक्ष को पकड़ते हैं जब चीजें कम से कम कुछ डेटा सुरक्षा प्रदान करने के लिए शांत होती हैं। मैंने इस सेटअप का उपयोग सोलारिस के साथ किया है, लेकिन यह लिनक्स से संभव नहीं है क्योंकि यह बॉक्स से बाहर आता है।

चूँकि RAM SSD से अधिक परिमाण का आदेश है, इसलिए यह एक जीत होनी चाहिए, लेकिन मैं इसे आज़मा नहीं सकता। जैसा कि दूसरों ने देखा है, यदि आप tmpfs के साथ एक RAID1 का निर्माण करते हैं, तो यह बूट पर दोबारा नहीं आएगा क्योंकि tmpfs को आरंभ करने वाला चरण बूट प्रक्रिया में बहुत देर हो चुकी है - माउंटेन पर। आपके mds अच्छी तरह से और वास्तव में तब तक बने हैं, इसलिए यह विफल हो जाता है, और आपको इसे मैन्युअल रूप से पुनर्निर्माण करना होगा।

OTOH / dev / ram * डिवाइस इसके लिए एकदम सही होंगे - यदि आप उन्हें कॉन्फ़िगर कर सकते हैं। वे बहुत पहली चीज हैं जो सेट हो जाती हैं, और ram0 प्रारंभिक / फाइल सिस्टम है।


यह एक अच्छा जवाब है। कृपया "एन्हांसमेंट रिक्वेस्ट" को हटा दें, क्योंकि यह उत्तर के लिए उपयुक्त नहीं है।

मैं अभी भी एन्हांसमेंट अनुरोध करना चाहता हूं। सबसे अच्छा तरीका क्या है?
23
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.