Dlaczego mam tyle dysków RAM?

15

Mam Arch Linux działający na moim Raspberry Pi 2.

Zaraz po instalacji, wpadłem lsblk, fdiska dfkomendy (niestety nie zapisywać dane wyjściowe), ale miałem jeden dysk, który jest karta SD i dwie przegródki na nim. Następnie zaktualizowałem system pacman -Syu, zainstalowałem sudoi skonfigurowałem ssh. Teraz po uruchomieniu fdiskpokazuje, że mam w pamięci 16 dysków RAM z parametrami:

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

i wszelkiego rodzaju systemy plików montowane w różnych punktach montowania (podczas gdy ja osobiście stworzyłem /dev/rooti /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

Więc moje pytanie brzmi: co to są wszystkie dyski RAM i dlaczego są w moim systemie, skoro zdecydowanie ich nie utworzyłem i jakie są zamontowane systemy plików?

Edytuj :

cat /proc/partitions wynik:

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
RusI
źródło
1
Znalazłem to powiązane pytanie . Na to pytanie również nie ma świetnych odpowiedzi, ale jeden komentarz sugeruje, że /proc/partitionsmoże to mieć znaczenie. Powinieneś dołączyć wynik cat /proc/partitionsw swoim pytaniu.
kasperd
Nie musisz znaleźć żadnych odpowiedzi na konkretnej stronie Raspberry Pi na ogólne pytania dotyczące Linuksa. Szybkie Google znajduje odpowiedzi.
joan
1
@joan Och, robiłem obszerne google, ale nie mogłem znaleźć jasnej i zwięzłej odpowiedzi, tylko fragmenty.
Rosja
1. Te dyski RAM muszą zostać włączone przed skompilowaniem jądra. 2. Nie powinni faktycznie używać pamięci RAM przed zamontowaniem na nich FS.
płatek śniegu
Powodem przydzielenia tych dysków RAM pozostaje tajemnica ... Wydaje się, że powodem musiałoby być: 1) zapisywanie zapisów na karcie SD i / lub 2) poprawa wydajności poprzez zmniejszenie opóźnienia we / wy dysku. nikt (wiarygodny) nie odnotował takiego oświadczenia.
Seamus

Odpowiedzi:

4

Po pierwsze, dyski RAM to nie to samo, co tmpfs .

Na dysku głównym znajduje się wiele katalogów używanych do przechowywania plików tymczasowych. Foldery te mają tendencję do częstego czytania i pisania podczas tworzenia aplikacji, modyfikowania, a następnie usuwania plików podczas ich wykonywania.

Na mechanicznym dysku twardym, na którym liczba cykli odczytu / zapisu nie ma znaczenia, jest to całkowicie w porządku. Jednak w przypadku Raspberry Pi, gdzie głównym zapleczem pamięci jest karta SD, na której jest ograniczona liczba cykli odczytu / zapisu, mając tak dużo operacji we / wy, można przedwcześnie zużyć kartę.

Ponieważ nie musimy utrzymywać plików w tych katalogach tymczasowych podczas ponownego uruchamiania, wiele dystrybucji próbuje zmniejszyć zużycie urządzenia pamięci masowej, przechowując pliki tymczasowe o dużym ruchu w pamięci RAM. Tmpfs jest używany, ponieważ jest to system plików, który używa pamięci RAM jako zaplecza pamięci. Dlatego widzisz tyle katalogów zamontowanych jak tmpfs.

Dyski RAM są całkowicie niezwiązane z tym. Są to urządzenia blokowe wspierane przez pamięć RAM, podczas gdy tmpfs to system plików wspierany przez pamięć RAM. Dyski RAM są surowymi urządzeniami blokowymi podobnymi do /dev/sdaitp. Możesz utworzyć system plików na dysku RAM, uruchamiając go mkfs /dev/ramtak samo, jak na zwykłym urządzeniu blokowym dysku twardego.

Wierzę, że liczba dysków RAM dostępnych do użycia jest kontrolowana przez opcję konfiguracji jądra . Zapewniamy, że nie zajmują miejsca, dopóki ich nie użyjesz / nie napiszesz.

tangry
źródło
7

To nic niezwykłego.

Dyski RAM są powszechnie używane w tymczasowych systemach plików.

Mój laptop 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

My Raspbian Pi Zero

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
joan
źródło
3
Nie odpowiadasz na pytanie. Pytanie brzmi: dlaczego /dev/ram15(i prawdopodobnie również 0-14) pojawia się w danych wyjściowych z fdisk. Twoja odpowiedź zawiera jedynie wzmiankę, z tmpfsktórą nie ma żadnego związku /dev/ram*.
kasperd
1
Nie wątpię w twoje wypowiedzi, ale naprawdę interesuje mnie, dlaczego te zmiany miały miejsce w moim systemie. Podczas gdy właśnie studiuję Linuksa, a konkretnie wybrałem Archa jako „hardcorowego”, że tak powiem, gdzie musisz wyraźnie powiedzieć systemowi operacyjnemu, co chcesz, a teraz mam system do tworzenia dysków i systemów plików i montowania ich wszędzie na swoim miejscu - więc kto tu panuje?
Rus
2

Krótka odpowiedź : jest to fdisk szczególna cecha najnowszych wersji. Możesz również użyć partedi lsblk.

Wyodrębniono z tego wątku w AskUbuntu:

W późniejszych wersjach fdiskwybór tego, co program uważa za urządzenie blokowe, znacznie się zmienił. W util-linuxpakiecie, którego częścią jest fdisk (między innymi), wersja 2.21, decyzja ta opiera się na zgłoszonej geometrii dysku, natomiast w (jak na maj 2017 r.) Bieżącej wersji 2.72.1 dane wyjściowe / proc / partitions są analizowane

I:

Do RAM-dyski zostały w jądrze przez długi czas, to jest zachowanie fdisk że zmieniło.

Więcej szczegółów i kilka obejść (jeśli denerwują cię dyski RAM na ekranie) w wyżej wymienionym wątku.

Sopalajo de Arrierez
źródło
„Więcej szczegółów i kilka obejść” ??? gdzie ???
ZEE
@Zee, spójrz na odnośny wątek na AskUbuntu. Podają nawet kilka poprawek dla oryginalnego źródła fdisk.
Sopalajo de Arrierez