我将 /dev/sdb3 (GPT 分区)中的一个分区复制(dd)到 /dev/vg0/lv0_sys (lvm2 lv)
肯定需要调整其中之一的 uuid,我发现 blkid 向我显示了两者的两个不同的 uuid。令我惊讶的是,我寻找其他方式来显示 uuid,并来到了une2fs。une2fs 为我提供了相同的 uuid。这意味着,tune2fs 和 bklid 为 /dev/mapper/vg0-lv0_sys 处的副本提供了不同的 uuid
请注意,我使用符号链接 /dev/vg0/lv0_sys 来制作副本,但使用直接路径 /dev/mapper... 来获取 uuid。该符号链接不适用于 blkid。但它确实可以与tune2fs一起使用。
那么,blkid 在做什么呢?分区/lv 是否有自己的 uuid,与文件系统 uuid 不同,但可以相同吗?blkid 正在展示这个吗?
blkid的完整输出:
/dev/sda2: UUID="634cfda6-5ebd-4c12-9480-e9effb2c9c69" TYPE="ext2"
/dev/sda3: UUID="69fa6b8a-4c53-409b-aec7-d72b1ca9463a" SEC_TYPE="ext2" TYPE="ext3"
/dev/sda4: UUID="966c08c5-1588-4456-9d82-3c42d6a8e09c" SEC_TYPE="ext2" TYPE="ext3"
/dev/sda5: UUID="414cef10-c56c-4b23-8508-698ed49360f9" SEC_TYPE="ext2" TYPE="ext3"
/dev/sda6: UUID="MI8wFf-3wqr-fYR0-iVOk-1gAJ-mDuG-yaUpoK" TYPE="LVM2_member"
/dev/sda7: UUID="RoZLP3-Owd8-5Fkm-Q33j-X6nS-Eju5-Bqw3Xr" TYPE="LVM2_member"
/dev/sda8: UUID="fFStIK-Cvqy-kGYt-JDlx-JAAT-VcHb-apY50V" TYPE="LVM2_member"
/dev/sda9: UUID="EImDQ9-UGI7-sUsM-ihar-vDuB-SSlb-wz7bhy" TYPE="LVM2_member"
/dev/sdb2: UUID="83556c87-b5f5-44e9-be53-2ae46cab8931" TYPE="ext2"
/dev/sdb3: UUID="25e6c972-e769-4216-bc18-8d2d1eefa6a1" TYPE="ext4"
/dev/sdb4: UUID="D2wdPj-RiS1-7ea0-KUUE-NLuq-UZUa-Fe3FuY" TYPE="LVM2_member"
/dev/mapper/vg0-lv0_sys: UUID="bc2de0a1-4de2-4e61-a19e-376409528fd9" TYPE="ext4"
/dev/mapper/vg3-lv0_sys: UUID="e9131371-71af-4dcc-a0f6-83673da1330c" SEC_TYPE="ext2" TYPE="ext3"
/dev/mapper/vg3-lv1_sys: …Run Code Online (Sandbox Code Playgroud) 我尝试使用 rsync 在两台机器之间同步文件,但无论文件修改时间如何,它似乎都会复制所有文件。连续两次调用该命令产生相同的结果,所以它显然是坏的。
有问题的命令是:
rsync -r local/path user@host:/remote/path -v
Run Code Online (Sandbox Code Playgroud)
本地文件系统是 ext4,而远程文件系统是 ext3。我怀疑问题出在这里,因为当我尝试在同一个 ext3 系统和 NTFS 驱动器之间同步文件时,我遇到了类似的问题。将后者转换为 ext3 解决了这个问题。
这次我不能求助于转换。有谁知道问题的确切来源和任何可能的解决方案?
因此,我的硬盘驱动器运行缓慢,在检查我的系统日志后,我发现了所有这些错误。一些谷歌搜索使我尝试在驱动器上运行 e2fsck -c -c。所以,它现在已经进行了大约 2 天,并且似乎接近完成。但是,它是这样说的:
e2fsck 1.42 (29-Nov-2011)
Checking for bad blocks (non-destructive read-write test)
Testing with random pattern: 92.64% done, 43:38:19 elapsed. (97/0/0 errors)
Run Code Online (Sandbox Code Playgroud)
这很酷。但是,97/0/0 意味着什么?我预计会丢失多少数据?(这是一个 3TB 的硬盘)(我想我可以等……以这种速度,我想是 3 个半小时,但我不确定它是否会告诉我 97 的含义,所以我想我想问。)
谢谢!
我正在尝试在 Linux Mint 13 上的 /opt (/dev/sda6, ext4) 上启用直接 I/O。我正在尝试的是:
mount -o dio,rw /dev/sda6 /opt
Run Code Online (Sandbox Code Playgroud)
作为根。
系统响应如下:
mount: wrong fs type, bad option, bad superblock on /dev/hda2
Run Code Online (Sandbox Code Playgroud)
dmesg 正在报告:
EXT4-fs (sda6): Unrecognized mount option "dio" or missing value.
Run Code Online (Sandbox Code Playgroud)
我不知道要设置哪个参数来启用直接 I/O(即使 ext4 可以使用直接 I/O 进行安装)。除此之外,如果 ext4 不支持直接 I/O,有人可以指出在 Linux 上使用的文件系统吗?
我正在切换机器,并将旧硬盘 ( /dev/sda4) 连接到新机器。
720G与新机器 ( ) 相比,旧机器的硬盘驱动器 ( ) 稍小736G,因此我也创建了一个稍大的分区。
于是,我接着跑去rsync将所有数据复制到新分区,如下图:
linux-70e2:/ # time rsync -azprvl /mnt/external-disk/foo /media/sda4/
...
sent 169,237,139,987 bytes received 24,529 bytes 24,419,185.41 bytes/sec
total size is 190,542,953,489 speedup is 1.13
real 115m30.297s
user 112m13.068s
sys 3m59.996s
Run Code Online (Sandbox Code Playgroud)
数据被复制且没有错误。
但是,当我这样做时:
du -h -m -s /mnt/external-disk/foo /media/sda4/foo
Run Code Online (Sandbox Code Playgroud)
我得到:
162414 /mnt/external-disk/foo
181721 /media/sda4/foo
Run Code Online (Sandbox Code Playgroud)
有人可以解释一下这种巨大的差异吗?为什么我没有得到相同的结果?这几天让我发疯。还有一些其他分区,我也遇到了类似的差异。
两个分区都是ext4.
linux-70e2:/ # mount | grep sda4
/dev/nvme0n1p5 on /media/sda4 type ext4 (rw,relatime,data=ordered)
/dev/sda4 on /mnt/external-disk type …Run Code Online (Sandbox Code Playgroud) 我在 LVM 上运行 ext4 文件系统。我正在考虑的两个主要加速选项是 LVM 缓存和外部 ext4 日志。
听起来如果我为此使用单个 SSD,回写模式下的 LVM 缓存与在外部设备上拥有 ext4 日志是一样的......
这是正确的解释吗?
根据手册:
mount_opts=mount_option_string
Set a set of default mount options which will be used when the file
system is mounted. Unlike the bitmask-based default mount options
which can be specified with the -o option, mount_option_string is an
arbitrary string with a maximum length of 63 bytes, which is stored in
the superblock.
Run Code Online (Sandbox Code Playgroud)
如果我尝试设置单个选项,它会起作用:
$ tune2fs -E mount_opts=data=writeback /dev/sde2
tune2fs 1.43.5 (04-Aug-2017)
Setting extended default mount options to 'data=writeback'
Run Code Online (Sandbox Code Playgroud)
但如果我尝试设置多个选项,它似乎与tune2fs自己的解析机制冲突:
$ tune2fs -E mount_opts=data=writeback,noatime /dev/sde2
tune2fs 1.43.5 (04-Aug-2017)
Bad options …Run Code Online (Sandbox Code Playgroud) 我刚买了一个新的 500GB 外置硬盘。大多数时候我只在这些东西和一些电影上存储操作系统 ISO。无论如何,大文件有时会超过 4GiB,因此 FAT 是不可能的。
所以,我想知道。我的旧外置硬盘是 NTFS 格式的,因为它有时必须能够连接到 Windows boxen。这个新硬盘没有这个要求。NTFS 仍然是最佳选择吗?ext{2,3,4} 文件系统之一是否是可移动磁盘的不错选择?是否有我不知道的文件系统符合要求?
这里的“账单”将是一个稳定的文件系统,它能够在不干净的断开连接中幸存下来,速度快,可以处理超过 4GiB 的文件,并且至少可以在 2.6.28 及更高版本的内核上使用。
更新:我没有考虑 xfs,它的大文件系统支持很有趣。我将查看我使用的操作系统/内核(RHEL5、CentOS5、Ubuntu 9.04 和 8.04、Fedora11),看看这些内核是否支持 xfs。我想我记得其中一些(发行版)默认不支持它,但话说回来,也许我在这里将 jfs 误认为 xfs。
同步选项也很有趣,但这意味着在我的所有机器上为这个设备创建 UDEV 规则,这不是一个大问题,但仍然是我必须记住的事情。
最后,采用 xfs 和同步选项,我想知道 xfs 的性能提升和同步选项的性能下降是否会比 - 仍然相当有限 - USB 接口显着。
我遇到了一个非常典型但奇怪的问题:我的服务器断电后硬盘坏了。我可以感觉到 fsck 在崩溃后在启动时完成了巨大的工作,然后我的 subversion 存储库失去了几个月的工作 - 这对我来说听起来很奇怪。服务器在该硬盘驱动器上运行 ext4,因此它应该是安全的 - 但事实并非如此。我开始怀疑是硬盘驱动器问题,但也许还有其他原因?
相关fstab行是
/dev/mapper/vg_data-LV_data /data ext4 默认为 1 2
系统是 Fedora 11 x86_64。
我的公司销售一种“嵌入式设备”,它是在内部 SSD 上实现为带有 ext4 的无头 Linux 机器。我们的一些用户习惯于在此框上执行“保存当前设置”,然后在设备报告保存完成后立即切断设备电源(即两秒钟后)。这会导致保存的文件偶尔损坏,因为在断电之前数据不会总是刷新到 SSD。所以我调整了我的软件以在写入文件后立即运行 /bin/sync (在关闭文件句柄之后但在通知用户保存完成之前)。这似乎解决了这个问题,但我的同事说对 /bin/sync 的一次调用是不够的,为了真正安全,我应该连续运行两次 /bin/sync。
对我来说,这听起来像是偏执狂......也许是早期版本的 Linux 或 unix 的习惯,它们的同步实用程序不能可靠地工作。他的建议是否有价值,还是只调用一次 /bin/sync 就足够了?
ext4 ×10
linux ×7
filesystems ×5
ext3 ×2
rsync ×2
cache ×1
fedora ×1
fsck ×1
hard-drive ×1
io ×1
lvm ×1
opensuse ×1
optimization ×1
xfs ×1