更多信息
该驱动器是一个4GB的ide闪存模块.
我有一个分区是ext4. O.S.安装在该分区上,grub是我的引导程序.
fdisk -l将/ dev / sda显示为我的flash模块,其中/ dev / sda1作为我的主分区.
断电后我通常无法完全通过启动init脚本完成.
当我将驱动器安装在另一个P.C.我运行fsck / dev / sda1.它总是显示消息
"zero datetime on node 1553 ... fix (y)?"
我修好了它,直到下一次断电,它才能正常启动.
当我明天到办公室时,我会发布fdisk -l的实际输出
这就是我所知道的系统工作原理.我不是一个系统人员,我是一名软件工程师,习惯于陷入工作描述之外的困境.我知道如何格式化驱动器,安装引导程序,编写软件和破解操作系统.
这是dumpe2fs的输出
#sudo dumpe2fs /dev/sda1 dumpe2fs 1.41.12 (17-May-2010) Filesystem volume name: VideoServer Last mounted on: / Filesystem UUID: 9cba62b0-8038-4913-be30-8eb211b23d78 Filesystem magic number: 0xEF53 Filesystem revision #: 1 (dynamic) Filesystem features: ext_attr resize_inode dir_index filetype extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize Filesystem flags: signed_directory_hash Default mount options: (none) Filesystem state: not clean Errors behavior: Continue Filesystem OS type: Linux Inode count: 245760 Block count: 977949 Reserved block count: 48896 Free blocks: 158584 Free inodes: 102920 First block: 0 Block size: 4096 Fragment size: 4096 Reserved GDT blocks: 239 Blocks per group: 32768 Fragments per group: 32768 Inodes per group: 8192 Inode blocks per group: 512 Flex block group size: 16 Filesystem created: Fri Feb 4 15:12:00 2011 Last mount time: Sun Oct 2 23:48:37 2011 Last write time: Mon Oct 3 16:34:01 2011 Mount count: 2 Maximum mount count: 26 Last checked: Tue Oct 4 07:44:50 2011 Check interval: 15552000 (6 months) Next check after: Sun Apr 1 07:44:50 2012 Lifetime writes: 21 GB Reserved blocks uid: 0 (user root) Reserved blocks gid: 0 (group root) First inode: 11 Inode size: 256 required extra isize: 28 Desired extra isize: 28 Default directory hash: half_md4 Directory Hash Seed: 249d2b79-1e20-49a3-b324-6cb631294a63 Journal backup: inode blocks
解决方法
该设置是持久的,因此如果您没有hdparm在生产系统中使用,则应该能够在其他系统上禁用磁盘写入缓存并重新插入磁盘.
顺便说一下:我的第二个想法是不可写的根文件系统(因此你的系统可以以某种“恢复模式”启动,并允许远程访问,即使可写文件系统由于某种原因无法安装).如果你可以改变硬件设计,可以考虑使用mtd devices代替IDE / SATA磁盘和闪存感知文件系统,如jffs2.我们已经使用这种组合与几个嵌入式设备(主要是现场的VPN路由器解决方案)多年效果很好.
更新:您的问题的根源似乎是您正在运行禁用日记功能的ext4文件系统 – Filesystem功能列表中缺少has_journal.只需关闭所有服务,使用lsof f – /检查是否还有打开的文件,使用mount -o remount重新安装root分区只读,ro /,使用tune2fs -O has_journal / dev / sda1启用日志并设置使用tune2fs -o journal_data_ordered / dev / sda1将“有序”日志模式设置为默认安装选项 – 您必须重新运行fsck(最好来自救援系统)并在此操作后重新安装root / reboot.
通过这些设置,即使在突然断电的情况下,也可以保证元数据可以从日志中恢复.实际数据也始终写入磁盘,尽管您可能会在启动时断电前几秒钟看到数据.如果这是不可接受的,您可以考虑将tune2fs -o journal_data / dev / sda1 mount选项与您的文件系统一起使用 – 这将包括在日志中写入磁盘的所有数据 – 这显然会为您提供更好的数据一致性,但代价是SSD上的性能损失和更高的磨损水平.