Eu tenho um pouco de mistério. Eu tenho um sistema Ubuntu 17.04 (atualizado de 16.04 LTS) usando o ext4 como seu sistema de arquivos principal.
Eu usei wget e curl para baixar uma iso de 2,3 GB, mas não consigo montá-lo. Na verdade, não posso fazer nenhuma operação: md5sum, wc, cat, mount -o loop, etc ... sem obter uma "operação não permitida". Eu posso "rm", no entanto. Eu sou root, e as perms no arquivo são 644. Eu não posso fazer um "lsattr" nem "chattr" nele sem "operação não permitida".
Eu provei que é exatamente relacionado ao tamanho do arquivo como eu fiz isso:
dd if = / dev / zero de = / tmp / test.iso bs = contagem 1M = 2047
e eu sou capaz de ler test.iso como é 1M menos de 2G, mas se eu mudar para 2048, não consigo ler o arquivo.
Eu entendo que o ext4 tem um limite mínimo de 16GB, mas estou bem abaixo disso. Os arquivos parecem ser criados muito bem.
Eu fiz uma pesquisa completa antes de postar e nada está relacionado ao meu problema. Não, não é FAT. É ext4. Não vejo erros no dmesg após acessar o arquivo, pois isso mostraria erros de apparour. Eu duvido que seja um perm imutável, pois eu nem tenho permissão para interpretá-lo.
Eu tenho um sistema Ubuntu 17.04 quase idêntico e funciona bem (exceto que foi instalado fresco em vez de via upgrade de 16.04).
Se eu escrevo para / dev / shm ao invés de / tmp, eu posso md5sum um arquivo de 3GB muito bem ... então há algo relacionado à maneira como ele é montado /. / dev / shm é obviamente um ponto de montagem diferente e não ext4.
# ls -l asm8.iso
-rw-r--r-- 1 root root 2253135872 Jan 15 20:27 asm8.iso
# md5sum asm8.iso
md5sum: asm8.iso: Operation not permitted
# strace -f md5sum asm8.iso
...
open("asm8.iso", O_RDONLY) = -1 EPERM (Operation not permitted)
...
# lsattr asm8.iso
lsattr: Operation not permitted While reading flags on asm8.iso
# mount |grep " / "
/dev/mapper/asci--vg-root on / type ext4 (rw,relatime,errors=remount-ro,data=ordered)
# tune2fs -l /dev/mapper/asci--vg-root
...
Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags: signed_directory_hash
Filesystem state: clean
Filesystem OS type: Linux
...
Eu comparei o sistema de trabalho, e a única diferença é que ele não tem uninit_bg e tem 2 extras: 64 bits, metadata_csum. Eu pesquisei essas bandeiras e elas não parecem relevantes para o problema.
Alguém tem alguma ideia? Se você quiser ver a saída de qualquer comando, vou compartilhá-los com prazer.
Agradecemos antecipadamente.
Aqui está a informação extra:
# df -h
Filesystem Size Used Avail Use% Mounted on
udev 7.9G 0 7.9G 0% /dev
tmpfs 1.6G 114M 1.5G 8% /run
/dev/mapper/asci--vg-root 992G 643G 299G 69% /
tmpfs 7.9G 0 7.9G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 7.9G 0 7.9G 0% /sys/fs/cgroup
/dev/sda1 472M 116M 332M 26% /boot
tmpfs 1.6G 0 1.6G 0% /run/user/999
tmpfs 1.6G 0 1.6G 0% /run/user/1003
tmpfs 1.6G 0 1.6G 0% /run/user/0
tmpfs 1.6G 0 1.6G 0% /run/user/1008
# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
udev 2046118 419 2045699 1% /dev
tmpfs 2051789 712 2051077 1% /run
/dev/mapper/asci--vg-root 66035712 3469883 62565829 6% /
tmpfs 2051789 1 2051788 1% /dev/shm
tmpfs 2051789 5 2051784 1% /run/lock
tmpfs 2051789 16 2051773 1% /sys/fs/cgroup
/dev/sda1 124928 315 124613 1% /boot
tmpfs 2051789 5 2051784 1% /run/user/999
tmpfs 2051789 5 2051784 1% /run/user/1003
tmpfs 2051789 5 2051784 1% /run/user/0
tmpfs 2051789 5 2051784 1% /run/user/1008
# cat /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
#
/dev/mapper/asci--vg-root / ext4 errors=remount-ro 0 1
# /boot was on /dev/sda1 during installation
UUID=20926db6-5e54-4907-912a-5fe996f45adc /boot ext2 defaults
0 2
/dev/mapper/asci--vg-swap_1 none swap sw 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto,exec,utf8 0 0
Não é um problema de diretório, pois os arquivos são criados no mesmo diretório:
Eu posso criar os 2 arquivos.
root@asci /tmp
# dd if=/dev/zero of=/tmp/file2047.iso bs=1M count=2047
2047+0 records in
2047+0 records out
2146435072 bytes (2.1 GB, 2.0 GiB) copied, 6.46013 s, 332 MB/s
root@asci /tmp
# dd if=/dev/zero of=/tmp/file2048.iso bs=1M count=2048
2048+0 records in
2048+0 records out
2147483648 bytes (2.1 GB, 2.0 GiB) copied, 60.2936 s, 35.6 MB/s
root@asci /tmp
# ls -ls /tmp/file*.iso
2096132 -rw-r--r-- 1 root root 2146435072 Jan 19 05:52 /tmp/file2047.iso
2097156 -rw-r--r-- 1 root root 2147483648 Jan 19 05:53 /tmp/file2048.iso
Mesmo que md5sum, cat e wc digam "operação não permitida", parece que posso executar o arquivo e declará-los:
# file *.iso
file2047.iso: data
file2048.iso: writable, regular file, no read permission
Aqui está stat. Eu não vejo diferenças notáveis.
# stat *.iso
File: file2047.iso
Size: 2146435072 Blocks: 4192264 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 7380361 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2018-01-19 05:52:30.925760162 +0100
Modify: 2018-01-19 05:52:30.921760136 +0100
Change: 2018-01-19 05:52:30.921760136 +0100
Birth: -
File: file2048.iso
Size: 2147483648 Blocks: 4194312 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 7380363 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2018-01-19 05:52:36.765797317 +0100
Modify: 2018-01-19 05:53:37.034180299 +0100
Change: 2018-01-19 05:53:37.034180299 +0100
Birth: -
Eu não sou um especialista em aparelhagem, mas em vez de passar por uma curva de aprendizado, eu simplesmente a desativei e você pode ver que ainda é um problema. Eu suspeitava que não era o problema porque eu acho que o "dmesg" deveria reportar mensagens de bloqueio de apparmor e não havia nenhuma nova saída do dmesg durante meus testes.
# service apparmor stop
root@asci /tmp
# service apparmor teardown
* Unloading AppArmor profiles
...done.
root@asci /tmp
# update-rc.d -f apparmor remove
root@asci /tmp
# wc -c file2048.iso
wc: file2048.iso: Operation not permitted
OMG. O que finalmente corrigido foi "apt remove apparmor; reboot".
Agora funciona.
Então deve ter sido um perfil aparente. Eu não o uso, então algo nas configurações padrão do apparmor está impedindo a visualização de arquivos com mais de 2G.
Alguém tem alguma idéia de qual configuração pode ser? Vou ter que reinstalar agora para saber.