Linux是否需要可写文件系统

时间:2014-09-25 22:53:15

标签: linux linux-kernel

Linux是否需要可写文件系统才能正常运行?我只是运行一个非常简单的init程序。目前我没有安装任何分区。内核已将根分区挂载为只读。只要我坚持使用mallocs,readlines和text到标准输出(puts),Linux是否能够只使用只读文件系统运行,或者Linux是否需要可编写的文件系统,甚至执行标准文本输入并输出?

我问,因为我似乎得到了关于堆栈的内核恐慌和抱怨。我现在不打算运行一个有用的系统。我已经在另一个分区上有一个有用的系统。我试图让它尽可能简单,以便在添加额外的复杂层之前完全理解它。

我正在运行一个相当标准的x86-64桌面。

3 个答案:

答案 0 :(得分:0)

是和否。如果它几乎没有任何用处,那么它不需要是可写的 是的,您正在运行桌面,因此需要可写入。

许多进程实际上需要可写文件系统,因为许多系统调用都可以创建文件。例如Unix域套接字可以创建文件。

许多应用程序也写入/ var和/ tmp

解决这个问题的方法是挂载文件系统read / only并使用文件系统覆盖来覆盖内存文件系统。这样,路径将是可写的,但它们会转到ram,重新启动时会丢弃任何更改。

请参阅:overlayroot

答案 1 :(得分:0)

不,不需要可写文件系统。理论上可以使用唯一的只读文件系统运行GNU / Linux。

在实践中,您可能希望将/ proc,/ sys,/ dev,可能/ dev / pts挂载到一切正常工作。请注意,即使某些bash命令也需要可写/ tmp。其他一些程序 - 可写/ var。

你总是可以将/ tmp和/ var挂载为ramdisk。

答案 2 :(得分:0)

不,不是必需的。例如,因为大多数发行版都有Linux的实时版本,用于启动实际使用和后端硬盘的cd或usb磁盘。

同样在正常安装中,当磁盘上存在损坏时,根分区将更改为只读。这样系统仍然作为只读分区出现。

您需要从dmesg输出中捕获vmcore和恐慌的堆栈跟踪以进一步分析。