Почему у меня так много RAM-дисков?

15

У меня работает Arch Linux на моем Raspberry Pi 2.

Сразу же после установки, я побежал lsblk, fdiskи dfкоманды (к сожалению , я не спасали выход) , но у меня был один диск, который является SD - карты и два раздела на нем. Затем я обновил систему pacman -Syu, установил sudoи настроил ее ssh. Теперь, когда я запускаю, fdiskэто показывает, что у меня в памяти 16 дисков RAM с параметрами:

Disk /dev/ram15: 4 MiB, 4194304 bytes, 8192 sectors 

Units: sectors of 1 * 512 = 512 bytes 

Sector size (logical/physical): 512 bytes / 4096 bytes 

I/O size (minimum/optimal): 4096 bytes / 4096 bytes

и всевозможные файловые системы, смонтированные в разных точках монтирования (хотя я лично создал только /dev/rootи /dev/boot):

Filesystem      Size  Used Avail Use% Mounted on
/dev/root       1.8G  1.1G  557M  67% /
devtmpfs        458M     0  458M   0% /dev
tmpfs           462M     0  462M   0% /dev/shm
tmpfs           462M  328K  462M   1% /run
tmpfs           462M     0  462M   0% /sys/fs/cgroup
tmpfs           462M     0  462M   0% /tmp
/dev/mmcblk0p1  100M   18M   83M  18% /boot
tmpfs            93M     0   93M   0% /run/user/1000

Итак, мой вопрос: что это за диски RAM и почему они находятся в моей системе, поскольку я определенно не создавал их и какие файловые системы были смонтированы?

Редактировать :

cat /proc/partitions выход:

major minor  #blocks  name

   1        0       4096 ram0
   1        1       4096 ram1
   1        2       4096 ram2
   1        3       4096 ram3
   1        4       4096 ram4
   1        5       4096 ram5
   1        6       4096 ram6
   1        7       4096 ram7
   1        8       4096 ram8
   1        9       4096 ram9
   1       10       4096 ram10
   1       11       4096 ram11
   1       12       4096 ram12
   1       13       4096 ram13
   1       14       4096 ram14
   1       15       4096 ram15
 179        0   31472640 mmcblk0
 179        1     102400 mmcblk0p1
 179        2    1853439 mmcblk0p2
РУСИ
источник
1
Я нашел этот связанный вопрос . На этот вопрос также нет хороших ответов, но один комментарий предполагает, что это /proc/partitionsможет быть актуально. Вы должны включить вывод cat /proc/partitionsв ваш вопрос.
Касперд
Вы не обязательно найдете ответы на сайте Raspberry Pi на общие вопросы о Linux. Быстрый Google находит ответы.
Джоан
1
@ joan О, я много гуглил, но не смог найти четкого и краткого ответа, только кусочки.
RusI
1. Эти RAM диски должны быть включены до компиляции ядра. 2. Они не должны использовать ОЗУ перед установкой на них ФС.
хлопья
Тогда причина выделения этих RAM-дисков остается загадкой ... может показаться, что причина должна заключаться в следующем: 1) сохранить записи на SD-карту и / или 2) повысить производительность за счет уменьшения задержки дискового ввода-вывода. Но никто (заслуживающий доверия) не был зарегистрирован с таким заявлением.
Симус

Ответы:

4

Во-первых, RAM-диски - это не то же самое, что tmpfs .

На вашем корневом диске много каталогов, которые используются для хранения временных файлов. Эти папки, как правило, часто читают и пишут, когда приложения создают, изменяют, а затем удаляют файлы во время их выполнения.

На механическом жестком диске, где количество циклов чтения / записи не имеет значения, это прекрасно. Тем не менее, на Raspberry Pi, где основным хранилищем данных является SD-карта, где имеется ограниченное количество циклов чтения / записи, слишком большое количество операций ввода-вывода может преждевременно изнашивать карту.

Поскольку нам не нужно сохранять файлы в этих временных каталогах после перезагрузки, многие дистрибутивы пытаются уменьшить износ устройства хранения, сохраняя временные файлы с большим трафиком в оперативной памяти. Tmpfs используется, поскольку это файловая система, которая использует RAM в качестве бэкэнда хранилища. Вот почему вы видите так много каталогов, смонтированных как tmpfs.

RAM-диски совершенно не связаны с этим. Это блочные устройства , поддерживаемые ОЗУ, тогда как tmpfs - это файловая система, поддерживаемая ОЗУ. RAM-диски являются необработанными блочными устройствами, похожими на /dev/sdaetc ... Вы можете создать файловую систему поверх RAM-диска, запустив ее так mkfs /dev/ramже, как и на обычном блочном устройстве жесткого диска.

Я считаю, что количество RAM-дисков, доступных для использования, контролируется параметром конфигурации ядра . Будьте уверены, что они на самом деле не занимают места, пока вы не используете / пишете им.

tangrs
источник
7

В этом нет ничего необычного.

RAM-диски обычно используются для временных файловых систем.

Мой ноутбук Debian

Filesystem      Size  Used Avail Use% Mounted on
udev            1.5G     0  1.5G   0% /dev
tmpfs           301M   32M  269M  11% /run
/dev/sda2        47G   31G   14G  71% /
tmpfs           1.5G  1.7M  1.5G   1% /dev/shm
tmpfs           5.0M  8.0K  5.0M   1% /run/lock
tmpfs           1.5G     0  1.5G   0% /sys/fs/cgroup
tmpfs           1.5G   69M  1.5G   5% /tmp
/dev/sda4       386G  344G   23G  94% /home
tmpfs           301M   12K  301M   1% /run/user/114
tmpfs           301M   76K  301M   1% /run/user/1000

Мой Распбиан Пи Ноль

Filesystem                     Size  Used Avail Use% Mounted on
/dev/root                      7.2G  3.8G  3.1G  56% /
devtmpfs                       214M     0  214M   0% /dev
tmpfs                          218M     0  218M   0% /dev/shm
tmpfs                          218M   17M  202M   8% /run
tmpfs                          5.0M  4.0K  5.0M   1% /run/lock
tmpfs                          218M     0  218M   0% /sys/fs/cgroup
/dev/mmcblk0p1                  56M   20M   37M  36% /boot
tmpfs                          100M  4.0K  100M   1% /ram
tmpfs                           44M     0   44M   0% /run/user/109
mercury.lan:/home/common/code  386G  344G   23G  94% /code
tmpfs                           44M     0   44M   0% /run/user/1000
Джоан
источник
3
Вы не отвечаете на вопрос. Вопрос в том, почему /dev/ram15(и предположительно 0-14) появляются в выводе fdisk. Ваш ответ только упоминание, tmpfsкоторое совершенно не связано с /dev/ram*.
Касперд
1
Я не сомневаюсь в ваших заявлениях, но мне действительно интересно, почему эти изменения произошли в моей системе. Хотя я просто изучаю Linux и специально выбрал Arch как «хардкорный», так сказать, где вы должны явно сказать ОС, что вы хотите, и теперь у меня есть система, создающая диски и файловые системы и монтирующая их по всему сам по себе - так кто здесь контролирует?
RusI
2

Краткий ответ : это просто fdisk особенность в последних версиях. В качестве альтернативы вы также можете использовать partedи lsblk.

Извлечено из этой темы в AskUbuntu:

На более поздних версиях fdiskвыбора того , что программа считает , как блочное устройство существенно изменилось. В util-linuxпакете, частью которого является fdisk (среди прочего), версия 2.21, это решение основано на сообщенной геометрии диска, в то время как в текущей версии 2.72.1 (по состоянию на май 2017 г.) вывод / proc / partitions анализируется

И:

В баран-диски были в ядре в течение длительного времени, это поведение FDISK , что изменилось.

Больше подробностей и несколько обходных путей (если эти ram-диски на экране вас раздражают) в вышеупомянутой теме.

Сопалахо де Арриерес
источник
«Больше подробностей и несколько обходных путей» ??? где ???
ZEE
@Zee, посмотрите на упомянутую тему в AskUbuntu. Они даже перечисляют некоторые патчи для исходного кода fdisk.
Сопалахо де Арриерес