假设不需要担心与旧系统的兼容性,我希望使用最新的稳定 linux 文件系统总是更好,目前似乎是ext4.
不过好像ext4变化不大。维基百科ext4文章确实列出了 的 11 个主要功能ext4,但据我所知,其中大部分似乎与ext3. 这篇文章还讨论了由延迟分配引起的潜在数据丢失,但据我所知,这只会发生在深奥的系统崩溃情况下,因此也不会产生任何实际差异。
这只是一个没有任何重大差异的小渐进升级,还是我应该运行以将我的ext3系统转换为ext4?
我想知道上次在 Linux (Debian) 上安装文件系统的时间。有什么帮助吗?
根据我作为在 Windows 工作站上工作的 Java 开发人员的观察,与 Linux 文件系统相比,NTFS 速度较慢。问题是,NTFS 驱动程序中是否有任何可以手动调整的内容,例如为其提供更多内存用于缓存?启用一些实验算法?如果那不可用,是否有另一种文件系统可以在 Windows 上使用,甚至可能是商业的,它比 NTFS 快?
需要明确的是,我不希望提高 Maven 项目的编译速度,我希望对操作系统进行全面改进。我有一种感觉,与 Linux 文件系统相比,NTFS 早已过时且缓慢。让我感到奇怪的是,地球上最流行的操作系统只有一个仍然需要手动碎片整理的文件系统。也许,是一种替代?
更新:根据我的观察,这是缓慢的。我正在构建/打包一个项目,这意味着在磁盘上进行大量读/写操作。构建系统是跨平台的(Java、Maven),因此我可以在启动到 Ubuntu 时执行完全相同的操作,例如。
在 Linux 上,我的构建速度至少快了 1/3。因此,关于文件系统的问题。如果放错了地方,我很抱歉。
是否有适用于 Windows 的分区管理器可以管理(调整大小、移动等)ext4 分区?
从分区的开头调整大小时,调整大小必须是智能的。
许多分区管理器都搞砸了(我注意到 Acronis Disk Director 10 是个例外),并在您从一开始调整大小时移动整个分区的数据,从而在许多情况下浪费了大量时间。
它还必须能够浏览(复制/删除)分区上的文件。
我认为 Acronis Disk Director 10 适合所有这些解决方案,只是它不支持 ext4。与 ext4 支持类似的东西正是我所需要的。
前段时间,有一些关于 ext4 在不干净的卸载后可能留下空文件的讨论,这篇文章总结得很好。基本上,由于延迟分配,写入可以在写入缓存中保留比 ext 日志的默认提交间隔(5 秒)更长的时间。
这些问题似乎已在一个补丁中得到解决,该补丁在某些情况下强制分配块,从而默认情况下最多 5 秒后强制数据到磁盘。
我想知道当应用程序覆盖文件的现有部分而不截断或附加文件本身时会发生什么。是否也会在 5 秒内强制写入磁盘?
这似乎与追加到文件的情况不同:追加时,文件大小发生变化,这是元数据的变化;因此,需要在 5 秒内提交日志,并且由于 data=ordered,出于安全考虑,必须在此之前写入数据(否则其他用户的已删除文件的一部分可能会显示给附加文件的所有者)文件)。
当只是覆盖文件数据时,没有理由必须在元数据日志提交之前进行数据写入,因为旧数据与新数据属于同一用户。那么写入是否发生在提交之前,或者是否可以延迟比日志提交间隔更长的时间?如果有,多长时间?
更新:我知道所有这些在做正确的事情时都是无关紧要的,即使用 fsync()。(这是所有关于 ext4 和数据丢失的讨论的主要原因——问题只涉及应用程序而不是 fsync()ing,或者不是在正确的时刻。)我不是在写我自己的应用程序,我问是因为我不知道我的所有应用程序是否都做正确的事情,我想知道这种“危险”写入的大致时间范围。问的原因是我的显卡驱动经常导致kernel panic,我想知道我是否需要担心超过最后5秒的数据写入。
我正在尝试使用 parted 调整分区大小,但它没有可用的“调整大小”命令
gchain@archbogchain@archbook:~$ sudo parted /dev/sdb
GNU Parted 3.1
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) help
align-check TYPE N check partition N for TYPE(min|opt) alignment
help [COMMAND] print general help, or help on COMMAND
mklabel,mktable LABEL-TYPE create a new disklabel (partition table)
mkpart PART-TYPE [FS-TYPE] START END make a partition
name NUMBER NAME name partition NUMBER as NAME
print [devices|free|list,all|NUMBER] display the partition table, available devices, free space, all found …Run Code Online (Sandbox Code Playgroud) 昨天,我删除了家庭/媒体服务器上的 71 GB 文件。
之前的可用空间:117 GB
之后的可用空间:126 GB
因此,我没有 71 GB 的额外可用空间,而是只有 9 GB。我仔细检查过没有打开任何文件,我真的删除了 71 GB,可用空间只增加了 9 GB。
我也尝试过同步,但没有效果。
这不是第一次发生。事实上,多年来我时不时地看到这种行为。首先是 ext3,现在是 ext4。
发生这种情况时,我可以通过卸载然后重新安装文件系统来回收可用空间。在这些情况下,卸载最多需要 2 分钟而不是几乎没有时间。
现在,我无法轻松卸载和重新安装文件系统,因为它一直在忙于我的录像机软件、我家人的 owncloud 服务器以及一些我目前还没有的服务。而且我不想在晚上3点钟起床只是为了卸载和重新安装。
不,'at' 实用程序不会这样做,因为其中一个服务执行不可恢复的长时间运行任务,因此需要手动状态检查以找到可以关闭的好时机,即任务刚刚完成。
但是今天早上,我注意到这个空间一夜之间被释放了。在我看来好像进行了某种清理,这可能与卸载时需要额外的时间相同。
到目前为止,我只在删除大量数据时注意到这种行为。另一方面,我不确定它是否经常发生,而且差异太小而无法注意到。
文件系统创建时为 root ( mkfs -m 0)保留了 0% 。根据fsck -f(我总是在卸载和重新安装之间这样做),文件系统没有损坏,并且根据 SMART 诊断扩展测试,硬件也正常。
[编辑]
tune2fs 1.42 (29-Nov-2011)
Filesystem volume name: bigdata
Last mounted on: /bigdata
Filesystem UUID: 6aebd17a-e064-41dc-9c68-c9a3acbe4f66
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery …Run Code Online (Sandbox Code Playgroud) 我今天遇到了一种情况,我重新启动了计算机,它说我需要检查磁盘的一致性。大约 10 分钟后(“完成 1%”),我放弃并决定在我回家时让它运行。
相比之下,我的家用计算机的所有分区都使用 Ext4,并且磁盘检查(大约每周运行一次)只需要几秒钟。我记得读过快速磁盘检查是一个优先事项,但我不知道他们如何做到这一点。
那么,Ext4 是如何如此快速地进行磁盘检查的呢?在 NTFS 出现后(大约 10 年前),这样做是否有一些巨大的突破?
注意:NTFS 磁盘约为 300 GB,Ext4 磁盘约为 500 GB。两者都大约半满。
fsck不久前,我在有问题的(未安装的)分区上运行了-c。该过程无人值守,结果未存储在任何地方(坏块 inode 除外)。
现在我想获取坏块信息,以了解硬盘驱动器是否有任何问题。不幸的是,分区是在生产系统中使用的,无法卸载。
我看到了两种获得我想要的东西的方法:
运行badblocks在只读模式。这可能会花费大量时间,并对系统造成不必要的负担。
以某种方式从文件系统本身提取有关坏块的信息。
如何查看已挂载的文件系统中注册的已知坏块?
我目前正在cp -aR将数据从我的(99% 已满)1TB ext4 格式磁盘复制到新的 LVM-with-ext4-on-it 磁盘。它需要永远。
有什么方法可以尝试“转换”磁盘到位?我在 EC2 上,所以备份需要几分钟。
或者,有没有比cp直接将 ext4 文件系统复制到 LVM 磁盘更快的方法?
ext4 ×10
linux ×4
filesystems ×3
ext3 ×2
ntfs ×2
windows ×2
arch-linux ×1
bad-blocks ×1
ext2 ×1
fsck ×1
hard-drive ×1
lvm ×1
mount ×1
partitioning ×1
ubuntu ×1
windows-7 ×1