जवाबों:
यह लिनक्स सिस्टम पर पूरी तरह से सामान्य है। यह इस मामले के लिए एक प्रारंभिक कार्रवाई की तरह है कि रैम डिस्क की आवश्यकता होनी चाहिए। उनमें से प्रत्येक का आकार 64 MiB है, बहुत कम मूल्य। यदि आवश्यक हो, तो आकार स्वचालित रूप से बढ़ जाएगा।
विली में अचानक 16 रैम डिस्क क्यों उपलब्ध हैं, केवल कठिनाई के साथ समझाया जा सकता है।
मैंने डिफ़ॉल्ट रैम डिस्क का परीक्षण किया है:
RAM डिस्क ड्राइवर ब्लॉक डिवाइस के रूप में मुख्य सिस्टम मेमोरी का उपयोग करने का एक तरीका है। यह initrd के लिए आवश्यक है, एक प्रारंभिक फाइल सिस्टम का उपयोग किया जाता है यदि आपको रूट फाइल सिस्टम तक पहुंचने के लिए मॉड्यूल लोड करने की आवश्यकता होती है (देखें दस्तावेज़ीकरण / initrd.txt)। यह क्रिप्टो काम के लिए एक अस्थायी फाइल सिस्टम के लिए भी इस्तेमाल किया जा सकता है, क्योंकि सामग्री रिबूट पर मिटा दी जाती है।
अधिक स्थान की आवश्यकता होने पर RAM डिस्क गतिशील रूप से बढ़ती है। यह बफ़र कैश से रैम का उपयोग करके करता है। ड्राइवर बफ़र्स को चिह्नित करता है जिसे वह गंदे के रूप में उपयोग कर रहा है ताकि वीएम सबसिस्टम बाद में उन्हें पुनः प्राप्त करने का प्रयास न करे।
रैम डिस्क डिफ़ॉल्ट रूप से 16 रैम डिस्क का समर्थन करता है, और असीमित संख्या में रैम डिस्क (अपने जोखिम पर) का समर्थन करने के लिए पुन: कॉन्फ़िगर किया जा सकता है। बस ब्लॉक ड्राइवर कॉन्फ़िगरेशन मेनू में कॉन्फ़िगरेशन प्रतीक BLK_DEV_RAM_COUNT को बदलें और (पुनः) कर्नेल का निर्माण करें।
पता नहीं क्यों 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 /
मुझे पता है कि यह धागा पुराना है, लेकिन मैं इसके बारे में हाल ही में आया था। स्लैकवेयर 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;
शायद यह कुछ अन्य लोगों की मदद करता है ...
जोहान्स द्वारा पोस्ट सही है। राम-डिस्क लंबे समय से कर्नेल में है, यह 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
यह व्यवहार कर्नेल विकल्पों द्वारा नियंत्रित होता है जिसे आप केवल कस्टम कर्नेल को फिर से शुरू करके बदल सकते हैं। आप एक GRUB पैरामीटर ramdisk_size का उपयोग करके RAM * उपकरणों के आकार को बदल सकते हैं, लेकिन गिनती को नहीं। क्योंकि भले ही आप स्मृति के बहुत सारे है यह, बेकार है हर रैमडिस्क जो कुछ भी आकार आप स्थापित करने के लिए वृद्धि होगी। उदाहरण के लिए यदि आप एक 8 जीबी रैमडिस्क चाहते हैं - जो मैं करता हूं, तो नीचे देखें - आपको 16x 8 जीबी इंस्टेंसेस मिलेंगे। मुझे नहीं पता कि यह हानिरहित है यदि आप उनमें से अधिकांश का उपयोग नहीं करते हैं, लेकिन मैं अपने सिस्टम को ईंट करने के लिए अनिच्छुक हूं यदि यह नहीं है।
मैं 8GB हार्ड डिस्क विभाजन के साथ दर्पण के लिए 8GB / dev / ram डिवाइस का उपयोग करना चाहता हूं ताकि उस पर हॉट डिस्क क्षेत्र डाल दिया जा सके। मेरा आवेदन स्वचालित रूप से मुक्त स्थान के आधार पर नियमित भंडारण के लिए ब्लॉक लिखेगा, इसलिए यह कोई फर्क नहीं पड़ता कि यह छोटा है।
Mdadm के तहत लिखने के पीछे के साथ, यह तेजी से धधकते हुए लिखते हुए लिखने का प्रभाव होना चाहिए, क्योंकि दर्पण दर्पण के एचडीडी पक्ष को पकड़ते हैं जब चीजें कम से कम कुछ डेटा सुरक्षा प्रदान करने के लिए शांत होती हैं। मैंने इस सेटअप का उपयोग सोलारिस के साथ किया है, लेकिन यह लिनक्स से संभव नहीं है क्योंकि यह बॉक्स से बाहर आता है।
चूँकि RAM SSD से अधिक परिमाण का आदेश है, इसलिए यह एक जीत होनी चाहिए, लेकिन मैं इसे आज़मा नहीं सकता। जैसा कि दूसरों ने देखा है, यदि आप tmpfs के साथ एक RAID1 का निर्माण करते हैं, तो यह बूट पर दोबारा नहीं आएगा क्योंकि tmpfs को आरंभ करने वाला चरण बूट प्रक्रिया में बहुत देर हो चुकी है - माउंटेन पर। आपके mds अच्छी तरह से और वास्तव में तब तक बने हैं, इसलिए यह विफल हो जाता है, और आपको इसे मैन्युअल रूप से पुनर्निर्माण करना होगा।
OTOH / dev / ram * डिवाइस इसके लिए एकदम सही होंगे - यदि आप उन्हें कॉन्फ़िगर कर सकते हैं। वे बहुत पहली चीज हैं जो सेट हो जाती हैं, और ram0 प्रारंभिक / फाइल सिस्टम है।