Questions tagged «filesystems»

文件系统是一种组织和存储计算机文件及其数据的方法。

4
如何使btrfs假装为ext4?
Dropbox刚刚宣布他们的Linux客户端将来仅支持ext4。我目前在btrfs分区上使用Dropbox(没有任何问题)。显然,xattr支持是必不可少的。ext4和btrfs都支持此功能,实际上我不知道btrfs也不支持的ext4功能。 我不知道Dropbox打算如何检测文件系统,但是有什么办法可以让btrfs假装为ext4?

2
如何分配8个块但文件大小为0?
有人在其他站点上问我这个问题,即名为“ abc.dat”的文件的文件大小为0,但有8个块,这是我要他给我的输出(某些文本已从中文翻译成英文): $ cp abc.dat abc2.dat; ls -ls abc2.dat #try to copy, it still 8 blocks but 0 byte 8 -rw-rw-r-- 1 rokeabbey rokeabbey 0 Feb 27 19:39 abc2.dat 8 -rw-rw-r-- 1 rokeabbey rokeabbey 0 Sep 18 19:11 abc.dat#抱歉,这可能是他添加的额外错误输出 $ stat abc.dat File: 'abc.dat' Size: 0 Blocks: 16 IO Block: …


2
btrfs是否适合作为备份文件系统?
现在,我在ext4之上有一个非常传统的备份文件系统结构。每次进行备份时,backup-DATE都会创建一个新文件夹,将文件rsync到该文件夹​​(使用rsync的--link-dest选项进行硬链接)。 由于我已经阅读了有关bitrot的文章,因此我希望透明地为所有文件提供一个校验和。显然ext4无法做到这一点,但是btrfs确实提供了对数据校验和的支持(甚至内置RAID1模式)。首先,我想btrfs用作支持数据校验和的“哑”文件系统,而不使用RAID,子卷快照,发送/接收等高级功能。 但是,他们的Wiki并没有真正激发人们对文件系统进行备份的信心: “尽管许多人可靠地使用它,但是仍然发现问题。您应该保留并测试数据备份,并准备好使用它们。” - 入门 “ btrfs是否稳定?长答案:[..]无论您做什么,我们都建议保留良好的,经过测试的系统外(和异地)备份。” - 常见问题解答。 我的用例是进行脱机备份。因此,该磁盘将很少使用(以小时为单位),并且会频繁插入/拔出(eSATA或USB 3.0)。必须拥有可靠的文件系统。它一定不能比ext4 wrt更糟。停电,不正常关机等 实际上是否建议将btrfs用作文件系统以进行备份?btrfs是否还有其他属性可能使它不太适合(或更多)?

4
哪些文件系统元数据操作实际上记录在ext4和xfs中?
对于哪个文件系统元数据操作实际上保留在ext4和xfs文件系统日志中,我找不到简单直接的答案。请注意,我并不是在询问POSIX声明为“原子”的什么。我更关心的是,原子文件系统操作的哪些子集可以通过启用启用日志而无需持久地向后弯曲而有效地持久化fsync(2)。 我相当确定的操作是: creat(2) link(2) unlink(2) rename(2) mkdir(2) rmdir(2) 我不确定的操作: symlink(2) 该symlink(2)案件是最令人头疼的,因为似乎没有任何可以简单的方式来 fsync(2)或fdatasync(2)存储符号链接的内容的基本数据块。知道日记本能帮我解决这个麻烦。

2
永不中断的文件系统(可接受数据丢失)
关于这个问题有几个现有的话题,但是我所寻求的略有不同。我在嵌入式Linux上有SD卡,它会掉电。我也许可以在某个时候修改硬件,正确关闭硬件等等,但是等等,但是现在,我只是想找到一个在断电后仍能正常工作的文件系统。数据丢失是可以接受的。我宁愿不丢失比当前正在写的文件更多的信息,但我还是宁愿丢失所有文件,也不愿面对“无法装载”,“等待10分钟fsck”或“无法创建新文件”。文件由于此inode出现了一些错误”。该程序必须继续! 为了确保这一点,我正在付出很多努力。我使用的是工业级组件,有硬件看门狗,软件看门狗,内部,外部,用于重新启动程序的init,不断检查内存,文件描述符的守护程序等等,我有看门狗看我的看门狗,而这些看门狗又会监视其他看门狗...但是我似乎无法保证SD卡能够安装并正常运行? 目前,我最好的选择是在SD卡上使用JFS,在我的安装中包括fsck和fsck.jfs。(添加600kb +占用了我的ram和flash。这是不好的。)并在每次启动时运行fsck(可能会增加很多启动时间。这有些不好。)。不过似乎有点难过。 有谁知道更好的方法或更好的文件系统? 更新:e2fsprogs-libs(对jfsutils的依赖)在我的发行版中似乎很难编译。我将研究ZFS(不过,它并不是我的发行版中的本机。它似乎做了很多我不需要的事情。) UPDATE2:有关我的系统和测试的更多信息:SD卡存储是辅助的可选存储。SD卡是2Gb-8Gb工业级microSD。SD卡是通过我的rc使用mount -t命令安装的。选项“ noatime”,但不“ sync”。我的发行版是一个定制的Analog Device风格的uClinux,具有3.10内核和1.21 busybox。我的主要存储是带有jffs2的spi闪存。我从来没有任何问题。我什至不知道是否有fsck.jffs2可用。另一方面,南德(Nand)闪过光芒……但这是另一回事。SD卡的用途是存储测量数据。“监控”程序会将结果附加到文件中,并具有策略性的同步放置。当文件超过给定大小时,将创建一个新文件。当达到给定数量的文件时,最早的文件将被删除。如果当前的测量文件由于掉电而丢失,那就没有灾难了。文件通常为50-100kb,1个结果通常为1kb。这只是初始开发阶段。没有固定的东西。这是我第一次处理嵌入式系统中的非闪存文件系统。(我在x86服务器上使用了ext4。) 我从vfat开始。默认文件系统。(我认为工厂可能有选择它的理由。如果一切正常,我并不是很在乎。)我从未见过嵌入式vfat设备中的任何断电问题。我在WinCE中遇到了FAT问题。但是,当我的“监视”程序达到100-200个文件时,它拒绝再创建文件。似乎FAT在根目录中有一个特殊的文件限制问题,在子目录中有一个稍大的文件限制问题。我需要能够在1个目录中创建500-1000个文件。所以vfat不会。 然后我切换到ext2。我没有在启动时插入fsck。(不知道我必须这样做。)由于出现“ inode something something”错误,一天之内,我的“监控”程序无法创建更多文件。灾害! 我当前的解决方案是在启动时使用“ e2fsck -y”的ext2。到目前为止,这似乎很有希望。但是e2fsck和“启动时fsck”的整个概念困扰着我。e2fsck本身就花费了超过350kb的主闪存和ram。(当它不运行时。)这意味着这是我最大的程序。它比busybox大。它几乎可以与我的内核媲美。 我一直在考虑ext3。它具有日志化的元数据,不会受到伤害。我对此有多大帮助还不确定。我的小文件和可控同步文件应该被覆盖吗?它具有有序的写入顺序。这意味着数据也有日志记录。但是,这可能导致不确定的滞后。在我的情况下,这很糟糕。(这可能不是问题。)它还具有计划的同步功能。例如。每5秒提交一次。我认为这干扰了我自己的同步。太多的写入操作对SD卡不利。甚至工业的。我找不到有关如何禁用此功能的任何文档。ext3 仍然需要在每次启动时都运行fsck!但是ext3仍然是可能的。 分机4。将解决ext3的许多性能问题。不过我真的不需要性能。而且我的发行版似乎没有内置的mkfs.ext4和fsck.ext4。也许这不是问题。可能会。例如。e2progs-libs(对jfsutils的依赖)似乎有很多编译问题。 JFS,XFS,BRFSS。我的内核都支持。当前未包含在我的用户空间工具框中。一切似乎都是相当大的,复杂的系统。而且它们似乎都在启动时需要“ fsck”等效项吗? 我还考虑过抛出自己的文件系统:始终写入文件表的2个副本。遍历时,它将选择具有正确CRC和最新序列号的一个。进行两个阶段的写入序列。临时分配,修复提交。无需fsck。恐怕这可能会有些天真。 UPDATE3:顺便说一句,嵌入式系统(至少是嵌入式系统)的本质是它们是自治的,无人看管的,遥不可及的,并且它们必须运行多年。诸如fsck之类的程序可能需要人与人之间的交流,使我无所适从。

6
如何找到ext4文件系统的偏移量?
我的硬盘驱动器出现故障,无法写入或读取磁盘的第一个扇区。它仅给出I / O错误,仅此而已。磁盘上的其他区域似乎(大部分)正常。我正在尝试挂载分区(ext4),看看是否可以访问一些我想恢复的文件。由于该mount命令支持一个offset选项,因此即使分区表不可读也不可写,我也应该能够挂载文件系统。问题是如何找到偏移量。ext4工具似乎都没有这个特殊功能。

1
查找文件的所有硬链接而无需遍历文件系统
我在此页面中看到,inode有一个链接计数器,可知道指向该inode的文件数(读取为“目录项”)。有没有一种方法可以知道哪些目录包含此类条目而无需遍历整个文件系统?此信息存储在某处吗? struct inode { kdev_t i_dev; unsigned long i_ino; umode_t i_mode; nlink_t i_nlink; uid_t i_uid; gid_t i_gid; … };

1
确定给定文件的LVM范围编号
我目前正在从事与工作无关的家庭作业。我有一个坐在逻辑卷上的ext4文件系统。我正在测试不同的性能调整策略,这个想法出现在我身上。由于pvmove可以移动单个范围和范围的范围,因此有一种方法可以绘制出哪些物理范围来保存特定文件(理论上它可以为数据库备份文件或大型的常用文件共享)并将它们移至特定范围存储设备(例如,我在同一LVM卷组中有一个常规HDD和一个SSD驱动器)? 我曾想过使用“ filefrag”,但后来我发现对于范围号是否必须按顺序使用并不是100%的了解(因此知道ext4中有多少个扇区可以看到一个文件并不一定会让我可以找出文件实际位于哪个扩展区编号/卷上。 有任何想法吗?

4
哪种文件系统可以提供最好的保护,以保护数据免于因断电而损坏?
我运行一个小的uClibc和busybox一个x86设备上基于嵌入式系统。我使用的是initramfs,但是我也在ext3IDE模式下将自定义目录安装在紧凑型闪存设备上,该目录用于存储由自定义编写的c ++应用程序创建的持久性测量记录数据。我选择了ext3文件系统,因为在读过的几本书中(在Karim Yaghmour 撰写的《构建嵌入式Linux系统》和Christopher Hallinan 撰写的《Embedded Linux Primer》)中,在IDE模式下使用CF驱动器时,建议使用该文件系统来防止电源丢失。这尤其重要,数据也很关键。 但是,由于我上一个问题中的一些评论,即在文件写入过程中发生断电时如何还原损坏的ext3文件的混淆,看来实际上该文件系统不能提供防止由于电源引起的数据损坏的安全性的保证。失利。所以我想知道 是否ext3实际上是这个设置的最佳选择? 光盘写入操作期间的断电是否只会定期破坏我要追加到文件中的部分数据,还是会破坏整个文件? 断电时未写入的数据是否完全安全?特别是,我的initramfs.cpio文件也可能会损坏吗? 我是否可以在应用程序代码中使用任何方法来保护数据(即创建一个额外的分区并将数据写入镜像,以便始终有2个副本)-对于我的应用程序而言,速度并不是真正的问题,因此复制操作成本很高是可以接受的。 我已经阅读并阅读了以下相关问题的答案:日志文件系统是否可以保证在电源故障后不会损坏?,但并没有涵盖使我感到困惑的某些事情。 我意识到我在问很多问题,但似乎尽管阅读了很多材料,但是在断电的情况下,我还是根本无法理解我的数据所带来的风险。

4
Unix文件系统结构的优点是什么
如果我在Linux(例如Debian / Gnu Linux)中安装应用程序,则该应用程序的文件将复制到文件系统中的许多不同目录中。 一些脚本进入/ usr / share .. / usr / local,另一些文件进入/ var .. / log .. etc /,依此类推。 对我而言,这是可以的,因为我了解了一些有关文件系统的知识,并且大多数目录都在其中存放文件以用于特定目的。这非常适合Unix哲学中的“一件事做好”。 但是我的问题是这种目录结构的优点是什么?还是仅仅是Unix时代的遗产。(例如,与使用Windows的情况相比,一个应用程序的所有文件都在一个特定的“文件夹”中)

1
dd:写入“ / dev / null”:设备上没有剩余空间
我正在将550MB文件读取到/ dev / null中,并且 dd: writing '/dev/null': No space left on device 我很惊讶。我以为/ dev / null是一个黑洞,您可以在其中发送任意数量的消息(因为它是虚拟的fs)。 是的,出现此错误时,我的磁盘几乎已满。除了从磁盘删除内容外,我还能做什么? ls -l /dev/null -rw-r--r-- 1 root root 0 July 7 21:58 /dev/null 代替 crw-rw-rw- 1 root root 1, 3 July 7 02:58 /dev/null 我正在使用的命令: time sh -c "dd if=$filename of=/dev/null"

3
文件块大小-stat和ls之间的差异
我注意到当我执行以下操作时: ls -ls file 它提供了块计数,例如8个块。 当我做: stat file 我注意到块数是16,是ls的两倍。 我的文件系统上的块大小为4096。我了解到ls使用的块的任意单位为1024。是否正确地说stat在报告块时使用512字节的任意单位? 如果是这样,是否有导致不一致的原因? 我在ext4文件系统上运行Ubuntu 11.10。

5
以用户身份安装ramfs
我的fstab条目: none /home/jreinhart/ramdisk ramfs defaults,user 0 0 挂载前的目录: drwxrwxr-x 2 jreinhart jreinhart 4096 Oct 17 11:31 ramdisk 之后的目录mount ramdisk: drwxr-xr-x 2 root jreinhart 4096 Oct 17 11:31 ramdisk 因此,您可以看到问题所在。安装后,所有者将更改为root,并且组权限也转到了,r-x所以我无法使用此虚拟磁盘。是什么赋予了? 我正在尝试这样做而不必这样做su。

1
文件表是在文件系统中还是在内存中?
在操作系统控制表的上下文中,术语“文件表”是否指的是属于文件系统或位于主内存中的数据结构(在这种情况下,我假定它仅引用打开的文件) ?我的教科书1说, 这些表提供有关文件的存在,它们在辅助内存中的位置,它们的当前状态以及其他属性的信息。文件管理系统可以维护和使用许多(如果不是全部)信息,在这种情况下,OS很少或根本不了解文件。 另外,什么是文件管理系统?这是否意味着文件系统? 1 Stallings,操作系统,第 7 版,第1页。127

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.