作者Gold740716 (项为之强)
看板Linux
标题[问题] ext3 档案大小上限只有 20G
时间Wed Apr 8 11:36:27 2020
在 8T 的外接硬碟 (My Book) 上格式化了 ext3 ,
但不知道是什麽原因,档案大小上限只能到 20G 。
truncate -s 19G 还能成功, 20G 就会报错了。
google 到的说法,
如果 block size 是 4k ,那上限应该是 16T ,
用 tune2fs 列出的 block size 也的确是 4096 ;
但实际上却只能建立最大 20G (2048000000 byte) 大小的档案。
不知道为什麽是 20G 这个奇怪的数字。
在挂载的时候,的确是用 ext3 去挂载的,没有用到 ext2 。
用 tune2fs 列出的属性:
```
tune2fs 1.44.5 (15-Dec-2018)
Filesystem volume name: <none>
Last mounted on: /mnt/backup
Filesystem UUID: xxxx
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype sparse_super large_file
Filesystem flags: signed_directory_hash
Default mount options: user_xattr acl
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 488382464
Block count: 1953506299
Reserved block count: 97675313
Free blocks: 1274808137
Free inodes: 487903751
First block: 0
Block size: 4096
Fragment size: 4096
Reserved GDT blocks: 558
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 8192
Inode blocks per group: 512
Filesystem created: Fri Aug 2 18:49:51 2019
Last mount time: Wed Apr 8 10:13:34 2020
Last write time: Wed Apr 8 10:46:48 2020
Mount count: 93
Maximum mount count: -1
Last checked: Sat Aug 3 08:03:15 2019
Check interval: 0 (<none>)
Lifetime writes: 2774 GB
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 256
Required extra isize: 32
Desired extra isize: 32
Journal inode: 8
Default directory hash: half_md4
Directory Hash Seed: 1430fead-0972-4ab8-90aa-784a0b48e68d
Journal backup: inode blocks
```
--
一位记者问总理:「请问总理先生,现在的中国人都穷吧?」不少人纳闷:怎麽提这种问题?大家都关注总理怎样回答。总理肯定地说:「不是的!」全场哗然,议论纷纷。总理看出了大家的疑惑,补充说了一句:「当官的不穷。」顿时掌声雷动。总理的机智打动了在场的所有人,掌声经久不息。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.113.127.95 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Linux/M.1586316991.A.0EF.html
1F:→ bitlife: 主机是cpu和os是几bit的作业系统? truncate理论上是用 04/08 13:17
2F:→ bitlife: truncate system call去实作,而trucate的长度参数是off_t 04/08 13:17
3F:→ bitlife: ,所以不同机器的上限可能会因为cpu,os的限制而有所不同 04/08 13:18
4F:→ bitlife: man 2 truncate 04/08 13:18
5F:→ bitlife: 写个c程式 printf("%d", sizeof(off_t)); 就可以知道 04/08 13:21
我机器是 debian buster 64bit ,off_t 是 8 byte ,
256^8 = 18446744073709552000 ,
应该是远超 20G 了。
※ 编辑: Gold740716 (140.113.127.95 台湾), 04/08/2020 13:50:06
早上是用 scp 下载档案到超过大小限制。
※ 编辑: Gold740716 (140.113.127.95 台湾), 04/08/2020 13:50:48
6F:→ bitlife: 不能改用ext4吗? ext3的年代硬碟真的很小,大容量硬碟出来 04/08 15:12
7F:→ bitlife: 的年代预设都是ext4,遇到了诡异问题如何可以先闪就闪 04/08 15:12
8F:→ bitlife: 如果可以 04/08 15:13
之前倒是用 ext4 常碰到问题,
笔电格式化的 ext4 拿到伺服器上,
结果笔电格式化的 ext4 里,
有伺服器 os 不支援的新属性不能读。
所以後来就保险一点改用 ext3 。
※ 编辑: Gold740716 (140.113.127.95 台湾), 04/08/2020 15:56:30
9F:推 kdjf: 那就XFS吧,几乎大家都能挂,顶多没有修复工具 04/08 16:46
也不是很常有超过 20G 的档案,
只是偶尔碰到会觉得麻烦,要用 split 切。
所以没有换的打算。
比较好奇是为什麽我的 ext3 的大小上限和其它人不一样。
※ 编辑: Gold740716 (140.113.127.95 台湾), 04/08/2020 20:35:15
後来梦到是我在 /etc/security/limits.conf 里自己设了大小上限。
```
* soft fsize 20000000
```
当初应该是觉得完全没有限制不太好,
至少设一个很大的值,
想不到後来用了一颗大容量硬碟很容易就超过了。
要绕过的方法是切换为 root ,
只有 root 用 bash 指令 ulimit ,
可以放松自己的限制,一般使用者只能调紧。
似乎也不能调整其它执行中程序的限制?
```
# ulimit -f $((100 * 1000 * 1000 * 1000))
```
※ 编辑: Gold740716 (140.113.127.95 台湾), 04/08/2020 22:34:07
10F:→ bitlife: XD 你应该没在用虚拟机器,随便一个虚拟机器的虚拟硬碟都 04/08 23:13
11F:→ bitlife: 几十GB上百GB的 04/08 23:13
我是穷人,每天都在烦恼硬碟不够用。
最近在烦恼 windows 的 qcow2 映像档越长越大怎麽办。
linux 的虚拟机比较小,几十G可以打发,
lxc 的话还可以压到 10G 内。
忽然又发现 soft 是可以被 ulimit 提升的。
※ 编辑: Gold740716 (140.113.127.95 台湾), 04/08/2020 23:33:36
12F:推 Debian: 为了避免等一下被叫出来踹共,先自行出来跪算盘。 04/09 03:22