Yanıtlar:
Linux sistemlerinde bu normaldir. RAM disklerin gerekli olması durumunda bir tür hazırlık eylemi. Her birinin boyutu 64 MiB, çok düşük bir değer. Gerekirse, boyut otomatik olarak büyütülecektir.
Wily'de neden aniden 16 RAM disk mevcut, ancak zorlukla açıklanabilir.
Varsayılan RAM disklerini test ettim:
RAM disk sürücüsü, ana sistem belleğini bir blok aygıt olarak kullanmanın bir yoludur. Kök dosya sistemine erişmek için modül yüklemeniz gerektiğinde kullanılan ilk dosya sistemi olan initrd için gereklidir (bkz. Documentation / initrd.txt). İçerik yeniden başlatıldığında silindiğinden, kripto işi için geçici bir dosya sistemi için de kullanılabilir.
RAM alanı daha fazla alan gerektiğinden dinamik olarak büyür. Bunu tampon önbellekten RAM kullanarak yapar. Sürücü, kullandıkları arabellekleri kirli olarak işaretler, böylece VM alt sistemi daha sonra geri almaya çalışmaz.
RAM diski varsayılan olarak 16'ya kadar RAM diskini destekler ve sınırsız sayıda RAM diskini desteklemek üzere yeniden yapılandırılabilir (kendi sorumluluğunuzdadır). Blok sürücüleri yapılandırma menüsünde BLK_DEV_RAM_COUNT yapılandırma sembolünü değiştirin ve çekirdeği (yeniden) oluşturun.
Fdisk'in neden birdenbire / dev / ram bildirdiği hakkında hiçbir fikrim yok.
Ancak fdisk'e yalnızca belirli aygıtları bildirmesini söyleyebilirsiniz.
fdisk -l /dev/sd*
Gerçek sürücüleri listeler.
Alternatif olarak parted ve lsblk komutlarını da kullanabilirsiniz.
Burada bir sürücü için çıkış ayrıştırıldı.
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
Karşılık gelen lsblk çıktısı
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 /
Bu iş parçasının eski olduğunu biliyorum, ama sadece son zamanlarda rastladım. Slackware 14.2'yi kurduktan sonra çıkışında aynı 16 RAM disk var
fdisk -l
. Biraz daha araştırdım ve fdisk'in (diğerleri arasında) bir parçası olduğu 'util-linux' paketinde, fdisk'in blok cihazı olarak gördüğü şeyin seçilmesinin önemli ölçüde değiştiğini buldum. Util-linux paket sürüm 2.21'de bu karar bildirilen disk geometrisine dayanırken, mevcut sürüm 2.72'de / proc / bölümlerin çıktısı ayrıştırılır. İnternette yaptığım araştırmalara göre, ramdiskler 2.4 sürümünden beri Linux'ta var, fdisk onları göstermedi. Gerçek disk olmayan birçok "disk" in listesinden rahatsız olduğum için, fdisk için bir yama yaptım:
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;
Belki bu bazılarına yardım eder ...
Johannes'in gönderisi doğru. Koç diskleri uzun zamandır çekirdeğin içindedir, değişen fdisk davranışıdır. Fdisk yamalama yerine, sorunu çözmek için basit bir perl betiği (5 satır kod, 6 yorum satırı) yazdım. Ben koydu ~/bin/fdisk-l
ve şimdi sadece hatırlamak değil arasına boşluk koymak fdisk
ve -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, $_);
Nisan 2017 itibariyle, ram diskleri artık geçerli Ubuntu çekirdeğiyle varsayılan olarak görünmüyor, bu nedenle bu sorun çözüldü. Bkz. Https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1593293
Bu davranış, yalnızca özel bir çekirdeği yeniden derleyerek değiştirebileceğiniz çekirdek seçenekleri tarafından yönetilir. Ram * cihazlarının boyutunu ramdisk_size GRUB parametresini kullanarak değiştirebilirsiniz, ancak sayımı değiştiremezsiniz. Bu işe yaramaz, çünkü çok fazla belleğiniz olsa bile, her ramdisk ayarladığınız boyuta yükselecektir. Örneğin, 8GB ramdisk istiyorsanız - bunu yapıyorum, aşağıya bakın - 16x 8GB örnekler alacaksınız. Çoğunu kullanmazsanız bunun zararsız olup olmadığını bilmiyorum, ama eğer değilse sistemimi tuğlalamak konusunda isteksizim.
Üzerine bir hot disk alanı koymak için özel bir 8GB sabit disk bölümü ile yansıtmak için 8GB / dev / ram cihazı kullanmak istiyorum. Uygulamam, blokları otomatik olarak boş alana göre düzenli depolama alanına yazacak, bu yüzden küçük olması önemli değil.
Mdadm altında arkadan yazma özelliği ile, eğer yazmalar patlarsa hızlı yanıp sönme yapma etkisi olmalı, en azından bir miktar veri koruması sağlamak için daha sessiz olduğunda aynanın HDD tarafı yakalanır. Bu kurulumu Solaris ile kullandım, ancak kutudan çıktığı için Linux ile mümkün görünmüyor.
RAM SSD'den daha hızlı büyüklük emirleri olduğundan, bu bir kazanç olmalı, ama deneyemiyorum. Diğerlerinin de fark ettiği gibi, tmpfs ile bir RAID1 oluşturursanız, önyükleme sırasında yeniden bir araya gelmez çünkü tmpfs'yi başlatan adım önyükleme işleminde çok geç - mountall'de. MD'leriniz o zamana kadar iyi ve gerçekten inşa edilmiştir, bu yüzden başarısız olur ve manuel olarak yeniden oluşturmanız gerekir.
OTOH / dev / ram * cihazları bunun için mükemmel olurdu - eğer onları yapılandırabilirseniz. Bunlar ilk kurulan şeydir ve ram0 ilk / dosya sistemidir.