正在进行的项目所用的系统是基于ubuntu构建的,前文也有说明。由于某些原因,需要在一块主板上用dd命令拷贝已经做好的系统镜像到硬盘,然后将这个硬盘换到另一块板子上使用。近期发现一个问题,就是将拷贝好系统的硬盘换到新的主板上使用,启动时系统变成只读系统。变成只读系统时,只读系统的提示信息如下:

/etc/rc3.d/S99myscript: 25: /etc/rc3.d/S99myscript: cannot create /etc/udev/rules.d/70-persistent-net.rules: Read-only file system

其实很早就遇到过一次,只是那时又由于某些原因,没有过多的样机进行那种方式的测试,因此没有引起重视。对于出现机率小又无法解释的问题,一般不花心思。比如最近有一台设备的网络状态表现十分诡异,在有的电脑上可以正常连接,有的电脑上连接不了,连接不了的电脑连其它同版本的设备又可以,什么升级同版本、直连、过交换机,改百兆全双工等,都试过。这类问题不知从何下手,即使项目经理催也没用。

当时出问题的信息还保留,如下:

sck from util-linux 2.20.1
swapon: /dev/disk/by-uuid/22f27499-7be5-4b06-8a21-67b135c79fea: swapon failed: Invalid argument
mountall: swapon /dev/disk/by-uuid/22f27499-7be5-4b06-8a21-67b135c79fea [2375] terminated with status 255
mountall: Problem activating swap: /dev/disk/by-uuid/22f27499-7be5-4b06-8a21-67b135c79fea
/dev/sdb2: Superblock last mount time (Mon Dec 15 11:04:01 2014,
        now = Sun Feb 16 09:08:04 2014) is in the future.

/dev/sdb2: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.
        (i.e., without -a or -p options)
mountall: fsck /opt [2339] terminated with status 4
mountall: Filesystem has errors: /opt
mountall: Skipping mounting /opt since Plymouth is not available

当时的解决方法是按提示的做。手动执行fsck。
root@localhost:~# fsck /opt
fsck from util-linux 2.20.1
e2fsck 1.42.9 (4-Feb-2014)
Superblock last mount time (Mon Dec 15 11:04:01 2014,
        now = Sun Feb 16 09:10:26 2014) is in the future.
Fix<y>? yes
/dev/sdb2 contains a file system with errors, check forced.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
/lost+found not found.  Create<y>? yes
Pass 4: Checking reference counts
Pass 5: Checking group summary information

/dev/sdb2: ***** FILE SYSTEM WAS MODIFIED *****
/dev/sdb2: 27/327680 files (0.0% non-contiguous), 56800/1310720 blocks

最关键的信息就是“Superblock last mount time is in the future”,直译过来,是超级块最后一次的挂载时间在未来。就是说,现在这个系统的时间,比上一次使用硬盘的时间,要早,在make编译时,也会遇到这种类似的问题。

网上有这方面的资料,无一例外都是修复磁盘。修复一次后,再也不出现这个问题了。

因此,上文提到的问题的解决,就是在出现只读时,用脚本去修复。因为系统上有2个分区,一个分区挂到根目录/,真正的程序在另一个分区,挂载到/app,当系统启动后,会运行/app/run.sh脚本。如果出现问题,这个分区是挂载不了的,但根分区还是可以挂载的。所以,在根分区中也创建同样的目录、同样的脚本中执行下面的脚本来修改。fsck -y表示直接修复,不用确认。

#!/bin/sh
echo "run internal script and run fsck...."
fsck / -y
fsck /app -y

sleep 1
reboot

实际上,这个问题的确是系统时间造成的。假如将正常的硬盘换到一块bios时间错误(主要是时间比实际时间要小)的主板上,就是出现这个问题。将同一块主板的bios时间往前改,一样出现问题。因此,只能说被bios时间坑了。这个bios时间可不能由上级程序去自动识别,自动修改。——那个时候,硬盘上还未升级有ntp功能的程序。

对于时间修改带来的问题,CU上有讨论:http://bbs.chinaunix.net/thread-4058093-1-1.html。

李迟,2015.1.28 晚

遇到一个Linux文件系统因bios时间错误变成只读的问题相关推荐

  1. 300行代码带你实现一个Linux文件系统

    Linux作为一个类UNIX系统,其文件系统保留了原始UNIX文件系统的表象形式,它看起来是这个样子: root@name-VirtualBox:/# ls bin boot cdrom dev et ...

  2. 低调的 Linux 文件系统家族

    在 Linux 中,最直观.最可见的部分就是 文件系统(file system).下面我们就来一起探讨一下关于 Linux 中国的文件系统,系统调用以及文件系统实现背后的原理和思想. 这些思想中有一些 ...

  3. Linux 文件系统

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1 Linux 文件系统基本概念 2 Linux 文件系统调用 3 Linux 文件系统的实现 3.1 Linux 虚拟文件 ...

  4. 解释Linux文件系统:Boot Loading, 磁盘分区,BIOS,UEFI和文件系统类型

    Boot loading,磁盘分区,分区表,BIOS,UEFI,文件系统类型等概念对我们来说所知甚少.我们经常遇到这些术语,但很少花费力气详细地了解这些术语和它们的含义.本文努力用最简单的方式填补这一 ...

  5. linux c++ 运行时报 段错误 的一个原因

    很长时间没有写 c/c++了 这次依据一些代码写了一个linux上的小东西,结果在运行时用new 创建对象的时候,报: 段错误 有可能还出现如下报错信息: *** glibc detected *** ...

  6. 遇到一个Linux系统时间突变问题

    最近遇到一个Linux系统时间无法更改小于某个固定时间的问题. 有关部门反馈,一旦将设备的时间设置小于2012年11月3号4点34分,复位设备后,系统时间就会变成2012年11月3号4点后的时间.此问 ...

  7. linux设计 实现一个模拟的文件系统,模拟Linux文件系统.doc

    模拟Linux文件系统 设计五: 设计任务: 模拟Linux文件系统.在任一OS下,建立一个大文件,把它假象成一张盘,在其中实现一个简单的 模拟Linux文件系统 . 在现有机器硬盘上开辟20M的硬盘 ...

  8. 简单文件系统的实现_300来行代码带你实现一个能跑的最小Linux文件系统

    Linux作为一个类UNIX系统,其文件系统保留了原始UNIX文件系统的表象形式,它看起来是这个样子: t@name-VirtualBox:/# lsbin boot cdrom dev etc ho ...

  9. linux 多个定时器,timer: 一个Linux下的超级精简的多重定时器:可实现成千上万个定时任务,定时精度可达纳秒级别,且同一时间点可添加不同的任务!适用于云后台服务和嵌入式等各种环境。...

    MT_Timer(MT译为Multiple或Multi) 一.介绍 一个Linux下的超级简洁的定时器:利用epoll机制和timerfd新特性实现的多重.多用.多个定时任务实现.只需要使用TIMER ...

最新文章

  1. react 显示当前时间_react中monent如何获取日期?
  2. memcached的认识
  3. 洛谷P2822组合数问题
  4. 常见查找算法(Java代码实现)
  5. 步骤五 · 4-9 解决getElementsByClassName()兼容性 未解决
  6. [导入]agtweener.zip(673.46 KB)
  7. WPF 美化界面,样式的使用
  8. 网易云参数解析(多图)
  9. Java开源企业协同办公项目:O2OA如何集成WPS
  10. 程序和算法之间,主要有什么关系?
  11. 2021年中国人口数量、人口结构现状、男女比例及人口增长情况分析[图]
  12. 不断下沉的咖啡业,是虚假的繁荣还是破局的前夜?
  13. 如何使用python做图_如何使用python做动图
  14. python实现大富翁_Python3 欧拉计划 问题84 大富翁
  15. 无卡支付时代 银行信用卡联手京东金融欲打翻身仗
  16. 轻松将jmp esp方式 改写为jmp ebx方式
  17. Python面试之沪江网“数据爬虫算法实习”
  18. CAD/CAM/CAE基础(三) 材料加工CAE技术基础
  19. sqlserver打开或创建mdf失败
  20. 大数据风控如何做到提升风险防范?

热门文章

  1. 一加神秘新机入网:搭载天玑8100 首发长寿版150W超级闪充
  2. 支付宝五福开奖!几个亿的项目你分到几块?
  3. 4999元起!iQOO 9 Pro今日首销:骁龙8旗舰处理器+独立显示芯片Pro
  4. 腾讯“抢”小米黑鲨做元宇宙?
  5. 通用汽车CES官宣电动皮卡 追赶福特、Rivian
  6. 特斯拉推出通用钥匙带 官方售价145元
  7. 蚂蚁森林:不存在网友反馈的“没有造林”的情况 干旱造成梭梭矮小
  8. 智能续航兼得的“超能代表”OPPO Watch 2系列正式发布
  9. ofo败局中唯一赚到钱的只有他?当事人回应......
  10. SN战队创造历史,苏宁集团发内部嘉奖令