您尚未登录。

#1 2018-07-02 15:54:32

xtricman
喵了个咪
注册时间: 2012-12-26
帖子: 426

正在使用的文件系统被破坏了会发生什么?

例如sda被挂载了,上面有文件开着,然后一个进程往sda直接写垃圾数据会发生什么?如果写的不是垃圾,是按文件系统的数据结构写的呢?如果sda突然从机器上拔下来,那那个持有打开的文件的进程会怎么样?@依云

离线

#2 2018-07-02 22:06:39

依云
a.k.a. 百合仙子
所在地: 一个等待妹纸出现的地方
注册时间: 2011-08-21
帖子: 4,739
个人网站

Re: 正在使用的文件系统被破坏了会发生什么?

由于 I/O 错误,进程一旦执行相关读写操作,会 D 状态到永远。当 / 所在的存储设备被拔下,系统将在数秒内僵死(至少十年前是这样子的)。

离线

#3 2018-07-03 13:18:34

xtricman
喵了个咪
注册时间: 2012-12-26
帖子: 426

Re: 正在使用的文件系统被破坏了会发生什么?

依云 说:

由于 I/O 错误,进程一旦执行相关读写操作,会 D 状态到永远。当 / 所在的存储设备被拔下,系统将在数秒内僵死(至少十年前是这样子的)。

如果进程mmap了sda上的ELF文件(例如正在执行中,然后访问了还未读入物理内存的部分),那是不是也会IO错误进入D状态?那这个D状态没法解除么?我查了一下谷歌,说这个时候任何信号都不接受,那除非重启就消除不掉这个进程了?如果/所在设备拔除,那所有进程几乎都在使用上面的ELF文件,然后所有进程都GG了?只能SysRq或者硬件重启?

离线

#4 2018-07-03 13:33:34

依云
a.k.a. 百合仙子
所在地: 一个等待妹纸出现的地方
注册时间: 2011-08-21
帖子: 4,739
个人网站

Re: 正在使用的文件系统被破坏了会发生什么?

是的。我当年就经历过不少次这种破事。

离线

页脚