С тех пор, как я обновил до 15,10, fdisk -l
отчеты 16 дисков поршня (/dev/ram0
... /dev/ram15
). Я немного не уверен, для чего это необходимо. Действительно ли безопасно удалить их? В противном случае, как я могу избавиться от этого вывод fdisk?
Это совершенно нормально в системах Linux. Это своего рода подготовительное действие на случай, если потребуются RAM-диски. Каждый из них имеет размер 64 МиБ, что очень мало. При необходимости размер будет увеличен автоматически.
Почему внезапно в Wily стали доступны 16 RAM-дисков, объяснить трудно.
Я тестировал RAM-диски по умолчанию на:
Драйвер RAM-диска способ использовать основную системную память как блочное устройство. Это требуется для initrd, начальной файловой системы, используемой, если вам нужно загрузить модули для доступа к корневой файловой системе (см. Documentation / initrd.txt). Оно может также может использоваться для временной файловой системы для работы с шифрованием, так как содержимое стираются при перезагрузке.
RAM-диск динамически увеличивается по мере того, как требуется больше места. Это делается с помощью ОЗУ из буферного кеша. Драйвер помечает используемые буферы как грязные. так что подсистема виртуальных машин не пытается вернуть их позже.
RAM-диск поддерживает до 16 RAM-дисков по умолчанию и может быть перенастроен поддерживать неограниченное количество RAM-дисков (на ваш страх и риск). Просто измени символ конфигурации BLK_DEV_RAM_COUNT в меню конфигурации драйверов блока и (пере) собрать ядро.
Понятия не имею, почему fdisk внезапно сообщает о / dev / ram.
Однако вы можете указать 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 /
Я знаю, что эта нить старая, но я наткнулся на нее только недавно.
После установки Slackware 14.2 я получил те же 16 дисков оперативной памяти в выводе
fdisk -l
. Я исследовал немного дальше и обнаружил, что в 'утил-линуксе'
пакет, частью которого является fdisk (среди прочих), существенно изменился выбор того, что fdisk считает блочным устройством. В пакете util-linux версии 2.21 это решение основано на сообщенной геометрии диска, в то время как в текущей версии 2.72 анализируется вывод разделов /proc/.
Согласно моим поискам в интернете ramdisks были в Linux с ядра 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;
Может это поможет некоторым другим...
Это поведение регулируется параметрами ядра, которые можно изменить только путем перекомпиляции собственного ядра. Вы можете изменить размер RAM * устройств, используя параметр GRUB ramdisk_size, но не счетчик. Это бесполезно, потому что даже если у вас много памяти , каждый ramdisk будет увеличиваться до любого установленного вами размера. Так, например, если вам нужен ramdisk на 8 ГБ - что я хочу, см. Ниже - вы получите 16 экземпляров по 8 ГБ. Я не знаю, безвредно ли это, если вы не используете большинство из них, но я не хочу блокировать свою систему, если это не так.
Я хочу использовать устройство 8 ГБ / dev / ram для зеркалирования с разделом жесткого диска 8 ГБ для конкретной цели размещения на нем области горячего диска. Мое приложение будет автоматически записывать блоки в обычное хранилище на основе свободного пространства, поэтому не имеет значения, что оно маленькое.
С отложенной записью в mdadm это должно иметь эффект быстрой записи, если они прерывистый, когда сторона зеркала с жестким диском догоняет, когда становится тише, чтобы обеспечить хотя бы некоторую защиту данных. Я использовал эту настройку с Solaris, но, похоже, это невозможно с Linux, поскольку она поставляется из коробки.
Поскольку RAM на несколько порядков быстрее SSD, это должно быть победой, но я могу » Я попробую. Как уже заметили другие, если вы создаете RAID1 с помощью tmpfs, он не будет повторно собираться при загрузке, потому что этап, на котором инициализируется tmpfs, происходит слишком поздно в процессе загрузки - при mountall. К тому времени ваши mds уже полностью построены, поэтому они выйдут из строя, и вам придется восстанавливать их вручную.
Устройства OTOH / dev / ram * идеально подходят для этого - если вы можете их настроить. Это самое первое, что настраивается, а ram0 - это начальная / файловая система.
Сообщение Йоханнеса верное. RAM-диски находятся в ядре уже давно, изменилось поведение fdisk. Вместо того, чтобы исправлять fdisk, я написал простой скрипт Perl (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 г. RAM-диски больше не отображаются по умолчанию в текущем ядре Ubuntu, поэтому эта проблема решена. См .: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1593293[1245 visible