fdisk -l menunjukkan 16 ram disk / dev / ram0… / ram15


17

Sejak saya memutakhirkan ke 15.10, fdisk -lmelaporkan 16 ram ram ( /dev/ram0... /dev/ram15). Saya agak tidak yakin apa yang dibutuhkan untuk itu. Apakah aman untuk menghapusnya? Jika tidak, bagaimana saya bisa mengeluarkan output fdisk itu?

Jawaban:


13

Ini sangat normal pada sistem Linux. Ini semacam tindakan persiapan untuk kasus bahwa disk RAM harus diperlukan. Masing-masing memiliki ukuran 64 MiB, nilai yang sangat rendah. Jika perlu, ukuran akan meningkat secara otomatis.

Mengapa tiba-tiba 16 disk RAM tersedia di Wily, hanya bisa dijelaskan dengan susah payah.

Saya telah menguji disk RAM default pada:

  • CentOS 7 - Tidak ada disk RAM
  • Fedora 23 - Tidak ada disk RAM
  • Ubuntu 14.04 - Tidak ada disk RAM
  • Raspbian Jessie - 16 RAM disk (4MiB)

Sumber

Driver disk RAM adalah cara untuk menggunakan memori sistem utama sebagai perangkat blok. Ini diperlukan untuk initrd, sistem file awal yang digunakan jika Anda perlu memuat modul untuk mengakses sistem file root (lihat Dokumentasi / initrd.txt). Itu juga dapat digunakan untuk sistem file sementara untuk pekerjaan kripto, karena konten dihapus saat reboot.

Disk RAM tumbuh secara dinamis karena dibutuhkan lebih banyak ruang. Ini dilakukan dengan menggunakan RAM dari cache buffer. Driver menandai buffer yang digunakan sebagai kotor sehingga subsistem VM tidak mencoba untuk mengklaimnya kembali nanti.

Disk RAM mendukung hingga 16 disk RAM secara default, dan dapat dikonfigurasi ulang untuk mendukung jumlah disk RAM yang tidak terbatas (dengan risiko Anda sendiri). Cukup ubah simbol konfigurasi BLK_DEV_RAM_COUNT di menu konfigurasi Blokir dan (re) bangun kernel.


Dan ini berubah dari 15,04 menjadi 15,10?
RudiC

4
Perhatikan bahwa mereka tidak menggunakan memori apa pun jika Anda tidak pernah menulis apa pun kepada mereka. Apa yang tampaknya telah berubah adalah bahwa kernel tidak digunakan untuk mendaftar ramdisks di / proc / partisi, tetapi sekarang tidak, jadi fdisk -l melaporkannya.
psusi

@RudiC: Sebagai kau reputasi 6 pengguna: Jika jawaban ini membantu Anda, jangan lupa klik abu-abu di sebelah kiri teks ini, yang berarti Ya, jawaban ini berlaku ! ;-)
Fabby

1
Terima kasih sudah mengingatkan saya. Jawabannya mencerahkan, menjelaskan situasinya, jadi terima kasih untuk itu. Sayangnya, saya masih tidak memiliki petunjuk bagaimana menekan output yang berantakan itu.
RudiC

Hanya FYI - memeriksa vanila Debian Jessie, dan itu adalah hasil yang sama dengan yang Anda dapatkan untuk Raspian Jessie.
UpTheCreek

12

Tidak tahu mengapa fdisk tiba-tiba melaporkan / dev / ram.

Namun Anda dapat memberi tahu fdisk untuk hanya melaporkan perangkat tertentu.

fdisk -l /dev/sd*

Akan mencantumkan drive nyata.

Atau Anda juga bisa menggunakan parted dan lsblk.

Keluaran sebagian untuk satu drive di sini.

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

Output lsblk yang sesuai

    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 /

1
perhatikan bahwa pada beberapa kotak (versi ACPI?) perangkat fisik h d *, tidak s d *.
kucing

8

Saya tahu utas ini sudah lama, tetapi saya baru saja menemukannya. Setelah menginstal Slackware 14.2, saya mendapatkan 16 disk RAM yang sama di output fdisk -l. Saya menyelidiki sedikit lebih jauh dan menemukan bahwa dalam paket 'util-linux', yang merupakan bagian dari fdisk, antara lain, pemilihan apa yang dianggap fdisk sebagai perangkat blok berubah secara substansial. Dalam paket util-linux versi 2.21 keputusan ini didasarkan pada geometri disk yang dilaporkan sementara dalam versi saat ini 2.72 output dari / proc / partisi diuraikan. Menurut pencarian saya di internet ramdisks telah ada di Linux sejak kernel 2.4, fdisk tidak menunjukkannya. Karena saya terganggu dengan daftar banyak "disk", yang bukan disk asli, saya membuat patch untuk 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;

Mungkin ini membantu beberapa orang lain ...


1
Ini memaksa Anda untuk melakukan kompilasi ulangfdisk

5

Pos oleh Johannes benar. Ram-disk sudah ada di kernel sejak lama, itu adalah perilaku fdisk yang berubah. Alih-alih menambal fdisk, saya menulis skrip perl sederhana (5 baris kode, 6 baris komentar) untuk menangani masalah ini. Saya memasukkannya ke dalam ~/bin/fdisk-l, dan sekarang saya hanya ingat untuk tidak memberi jarak di antara keduanyafdisk dan -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, $_);

Pada April 2017, ram disk tidak lagi muncul secara default dengan kernel Ubuntu saat ini, sehingga masalah ini teratasi. Lihat: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1593293


0

Perilaku ini diatur oleh opsi kernel yang hanya dapat Anda ubah dengan mengkompilasi ulang kernel khusus. Anda dapat mengubah ukuran perangkat ram * menggunakan parameter GRUB ramdisk_size tetapi tidak menghitungnya. Ini tidak berguna, karena walaupun Anda memiliki banyak memori setiap ramdisk akan bertambah hingga ukuran apa pun yang Anda atur. Jadi misalnya jika Anda menginginkan ramdisk 8GB - yang saya lakukan, lihat di bawah - Anda akan mendapatkan instance 16x 8GB. Saya tidak tahu apakah ini tidak berbahaya jika Anda tidak menggunakan sebagian besar dari mereka, tapi saya enggan untuk merusak sistem saya jika tidak.

Saya ingin menggunakan perangkat 8GB / dev / ram untuk mirror dengan partisi hard disk 8GB untuk tujuan spesifik menempatkan area hot disk di atasnya. Aplikasi saya akan secara otomatis menulis blok ke penyimpanan reguler berdasarkan ruang kosong, jadi tidak masalah kecil.

Dengan write-behind di bawah mdadm, ini seharusnya memiliki efek membuat tulisan menyala sangat cepat jika mereka bursty, dengan sisi HDD cermin mengejar ketika hal-hal lebih tenang untuk menyediakan setidaknya beberapa perlindungan data. Saya telah menggunakan pengaturan ini dengan Solaris, tetapi sepertinya tidak mungkin dengan Linux karena keluar dari kotak.

Karena RAM lebih cepat dari SSD, ini seharusnya menang, tapi saya tidak bisa mencobanya. Seperti yang orang lain perhatikan, jika Anda membangun RAID1 dengan tmpfs, itu tidak akan dipasang kembali saat boot karena langkah yang menginisialisasi tmpfs sudah sangat terlambat dalam proses boot - di mountall. Mds Anda baik dan benar-benar dibangun pada saat itu, sehingga gagal, dan Anda harus membangunnya kembali secara manual.

Perangkat OTOH / dev / ram * akan sempurna untuk ini - jika Anda dapat mengonfigurasinya. Mereka adalah hal pertama yang diatur, dan ram0 adalah sistem awal / filesystem.


Ini jawaban yang bagus. Harap hapus "permintaan tambahan", karena tidak sesuai untuk jawaban.

Saya masih ingin membuat permintaan peningkatan. Apakah cara terbaiknya?
mrchuck
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.