fdisk -l mostra 16 dischi ram / dev / ram0 ... / ram15

16

Da quando ho aggiornato a 15.10, fdisk -l riporta 16 dischi ram ( /dev/ram0 ... /dev/ram15 ). Sono un po 'insicuro di cosa sono necessari. È sicuro cancellarli? In caso contrario, come posso liberarmi di quell'uscita fdisk?

    
posta RudiC 28.11.2015 - 17:31

5 risposte

11

Questo è perfettamente normale sui sistemi Linux. È una specie di azione preparatoria per il caso che i dischi RAM dovrebbero essere richiesti. Ognuno di essi ha una dimensione di 64 MiB, un valore molto basso. Se necessario, la dimensione verrà aumentata automaticamente.

Perché improvvisamente 16 dischi RAM sono disponibili in Wily, possono essere spiegati solo con difficoltà.

Ho testato i dischi RAM predefiniti su:

  • CentOS 7 - Nessun disco RAM
  • Fedora 23 - Nessun disco RAM
  • Ubuntu 14.04 - Nessun disco RAM
  • Raspbian Jessie - 16 RAM dischi (4MiB)

Source

  

Il driver del disco RAM è un modo per utilizzare la memoria di sistema principale come dispositivo a blocchi. esso   è necessario per initrd, un filesystem iniziale utilizzato se è necessario caricare i moduli   per accedere al filesystem di root (consultare Documentazione / initrd.txt). Può   anche essere utilizzato per un filesystem temporaneo per lavoro criptato, dal momento che il contenuto   vengono cancellati al riavvio.

     

Il disco RAM cresce dinamicamente con lo spazio richiesto. Lo fa usando   RAM dalla cache del buffer. Il driver contrassegna i buffer che sta utilizzando come sporco   in modo che il sottosistema VM non provi a recuperarli in seguito.

     

Il disco RAM supporta fino a 16 dischi RAM per impostazione predefinita e può essere riconfigurato   supportare un numero illimitato di dischi RAM (a proprio rischio). Basta cambiare   il simbolo di configurazione BLK_DEV_RAM_COUNT nel menu di configurazione Blocchi driver   e (ri) costruire il kernel.

    
risposta data A.B. 28.11.2015 - 18:00
11

Non ho idea del perché fdisk stia improvvisamente riportando / dev / ram.

Puoi comunque dire a fdisk di segnalare solo dispositivi specifici.

fdisk -l /dev/sd*

Elencherà le unità reali.

In alternativa puoi anche usare parted e lsblk.

Uscita suddivisa per un disco qui.

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

Corrispondente output 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 /
    
risposta data user433395 25.12.2015 - 12:33
7

So che questa discussione è vecchia, ma l'ho trovata solo di recente. Dopo aver installato Slackware 14.2 ho ottenuto gli stessi 16 dischi RAM nell'output di %codice%. Ho approfondito un po 'e ho scoperto che nel' util-linux ' pacchetto, che fa parte di fdisk (tra gli altri), la selezione di ciò che fdisk considera come dispositivo a blocchi modificato sostanzialmente. Nella versione 2.21 del pacchetto util-linux questa decisione è basata sulla geometria del disco segnalato mentre nella versione corrente 2.72 viene analizzato l'output di / proc / partitions. Secondo le mie ricerche su Internet, i ramdisk sono presenti in Linux dal kernel 2.4, fdisk non li mostrava. Poiché sono infastidito dall'elenco di molti "dischi", che non sono veri dischi, ho creato una patch per 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;

Forse questo aiuta altri ...

    
risposta data Johannes 17.08.2016 - 12:37
4

Il post di Johannes è corretto. I ram-disk sono stati nel kernel per molto tempo, è il comportamento di fdisk che è cambiato. Invece di patchare fdisk, ho scritto un semplice script perl (5 righe di codice, 6 righe di commento) per gestire il problema. L'ho messo in ~/bin/fdisk-l , e ora ricordo solo non di inserire uno spazio tra fdisk e -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, $_);

A partire da aprile 2017, i dischi ram non appaiono più per impostazione predefinita con il kernel attuale di Ubuntu, quindi il problema è risolto. Vedi: link

    
risposta data Jeff Norden 06.03.2017 - 00:33
0

Questo comportamento è governato dalle opzioni del kernel che puoi modificare solo ricompilando un kernel personalizzato. Puoi cambiare la dimensione dei dispositivi ram * usando un parametro GRUB ramdisk_size ma non il conteggio. Questo è inutile, perché anche se hai un sacco di memoria ogni ramdisk aumenterà a qualsiasi dimensione tu abbia impostato. Ad esempio, se si desidera un ramdisk da 8 GB, cosa che faccio, vedere di seguito, otterrete istanze di 16x 8 GB. Non so se questo sia innocuo se non ne usi la maggior parte, ma sono riluttante a brick il mio sistema se non lo è.

Voglio utilizzare un dispositivo da 8 GB / dev / ram per eseguire il mirroring con una partizione del disco rigido da 8 GB allo scopo specifico di collocare un'area hot disk su di esso. La mia applicazione scriverà automaticamente i blocchi nella memoria normale in base allo spazio libero, quindi non importa che sia piccolo.

Con write-behind in mdadm, questo dovrebbe avere l'effetto di rendere le scritture veloci quando sono scoppiettanti, con il lato HDD dello specchio che si riavvia quando le cose sono più tranquille per fornire almeno una certa protezione dei dati. Ho usato questa configurazione con Solaris, ma non sembra possibile con Linux quando esce dalla scatola.

Dato che la RAM è di ordine di grandezza più veloce di SSD, questa dovrebbe essere una vittoria, ma non posso provarla. Come altri hanno notato, se si costruisce un RAID1 con tmpfs, non si riassembla all'avvio perché il passo che inizializza tmpfs è troppo tardi nel processo di avvio - su mountall. I tuoi mds sono già ben costruiti, quindi falliscono e devi ricostruirlo manualmente.

I dispositivi OTOH / dev / ram * sarebbero perfetti per questo - se potessi configurarli. Sono la prima cosa che viene impostata, e ram0 è il file / iniziale iniziale.

    
risposta data mrchuck 02.02.2017 - 07:24

Leggi altre domande sui tag