安装后,我立即运行
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 楼
首先,RAM磁盘与tmpfs不同。根驱动器上有许多目录用于存储临时文件。在应用程序创建,修改和删除文件期间,这些文件夹往往会进行大量读写操作。
在机械硬盘驱动器上,读/写周期的数量无关紧要,这很好。但是,在Raspberry Pi上,主存储后端是SD卡,其中的读/写周期数量有限,如果进行如此多的I / O操作,可能会使卡过早磨损。
由于我们不需要在重新启动时将文件保留在这些临时目录中,因此许多发行版试图通过将高流量的临时文件存储在RAM中来减少存储设备的损耗。使用Tmpfs是因为它是一个使用RAM作为其存储后端的文件系统。这就是为什么您看到如此多的目录作为tmpfs挂载的原因。
RAM磁盘与此完全无关。它们是由RAM支持的块设备,而tmpfs是由RAM支持的文件系统。 RAM磁盘是与
/dev/sda
等类似的原始块设备。您可以像在普通硬盘驱动器块设备上一样,通过运行mkfs /dev/ram
在RAM磁盘上创建文件系统。我相信可用的RAM磁盘数由内核配置选项控制。请放心,在您使用/写入它们之前,它们实际上不会占用空间。
#2 楼
没什么特别的。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
我的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
评论
您没有回答这个问题。问题是为什么/ dev / ram15(大概也是0-14)出现在fdisk的输出中。您的答案仅是提到与/ dev / ram *完全无关的tmpfs。
–卡巴斯德
16 Mar 27 '16 at 17:01
我毫不怀疑您的发言,但我对为什么这些更改在我的系统中发生真正感兴趣。在我刚刚学习Linux的同时,我特别选择了Arch作为“核心”,可以这么说,您必须明确告诉OS您要它做什么,现在我已经有了系统来创建磁盘和文件系统并挂载它们遍布整个地方-那么这里谁在控制?
– RusI
16 Mar 27 '16 at 17:43
#3 楼
简短的答案:这只是最新版本上的一个特性。或者,您也可以使用fdisk
和parted
。 从AskUbuntu的此线程中提取:
在更高版本的
lsblk
上,选择程序的内容被认为是块设备的实质性改变。在fdisk(除其他功能之外)的
fdisk
软件包中,版本2.21该决定是基于所报告的磁盘几何形状的,而在(截至2017年5月)当前版本2.72.1中,此输出是
/ proc / partitions被解析
和:
ram磁盘已经存在于内核中很长时间了,它是
fdisk的行为发生了变化。
上述线程的更多详细信息和几种解决方法(如果屏幕上的那些ram磁盘使您烦恼)。
评论
“更多详细信息和几种解决方法” ???哪里???
– ZEE
19年4月2日在15:36
@Zee,查看AskUbuntu上的引用线程。他们甚至列出了fdisk原始来源的一些补丁。
– Sopalajo de Arrierez
19年4月3日在18:28
评论
我发现了这个相关问题。这个问题也没有很好的答案,但是有一条评论表明/ proc / partitions可能是相关的。您应该在问题中包含cat / proc / partitions的输出。您不一定会在Raspberry Pi特定站点上找到有关一般Linux问题的任何答案。 Google很快找到了答案。
@joan哦,我进行了广泛的谷歌搜索,但是我找不到一个清晰简洁的答案,只是点点滴滴。
1.在编译内核之前必须启用那些RAM磁盘。 2.在他们上安装FS之前,他们实际上不应使用任何RAM。
那么分配这些RAM磁盘的原因仍然是个谜...似乎似乎是这样的原因:1)保存对SD卡的写操作,和/或2)通过减少磁盘I / O延迟来提高性能。没有人(可信的)用这样的声明记录在案。