OVH Cloud OVH Cloud

Débordement de la taille permise pour un fichier

9 réponses
Avatar
Sébastien
Bonjour,

J'ai cet erreur "Débordement de la taille permise pour un fichier" lorsque
j'essais de créer des fichiers plus gros que 2.15 GigaOctets. Je suis
pourtant en ext3 et Red Hat Linux (2.4.20-8)......

Comment remédier au problème? (j'ai bien unlimited partout avec la commande
ulimit -a)

--
Message monitoré par axinews : http://www.axinews.com/

9 réponses

Avatar
Saïd
Sébastien :
Bonjour,

J'ai cet erreur "Débordement de la taille permise pour un fichier" lorsque
j'essais de créer des fichiers plus gros que 2.15 GigaOctets. Je suis
pourtant en ext3 et Red Hat Linux (2.4.20-8)......

Comment remédier au problème? (j'ai bien unlimited partout avec la commande
ulimit -a)



On ne peut pas. Quand un logiciel lit un fichier il peut se deplacer dedans
en utilisant une adresse qui donne le numero de l'octet visé. Cette adresse
est un entier sur 32 bits signï. Donc le maimum atteignable est:
2^31!47483648 ~= 2.14*10^9 octets. Il faudra attendre les systemes de
fichier 64 bits pour arriver a plus.

la seule solution est de decouper tes données en tranches de 2Go. Tu
remarqueras au passage que les fichiers sur un DVD de 7Go font au maximum
1Go pour le meme type de raisons. A ma connaissance aucun systeme grand
public ne sait gerer des fichiers de plus de 2Go.

--
Saïd.

Avatar
Sébastien X
la seule solution est de decouper tes données en tranches de 2Go. Tu
remarqueras au passage que les fichiers sur un DVD de 7Go font au maximum
1Go pour le meme type de raisons. A ma connaissance aucun systeme grand
public ne sait gerer des fichiers de plus de 2Go.


En fait, j'utilise déjà des fichiers de plus de 4 Go sur mon serveur actuel 32 bit.
Je change d'hébergeur actuellement, je rapatrie donc sur mon nouveau serveur les
fichiers de 4 Go mais mon nouveau serveur refuse en évoquant cet erreur.

Pourtant j'utilise les memes versions de redhat et le meme systeme de fichier.
Je suppose qu'il doit y avoir une option dans la compilation du noyau..... mais je
n'ai pas envie de recompiler .... Il n'y a pas d'autres moyens? genre une nouvelle
librairie à installe

--
Message monitoré par axinews : http://www.axinews.com

Avatar
Saïd
Sébastien X :
la seule solution est de decouper tes données en tranches de 2Go. Tu
remarqueras au passage que les fichiers sur un DVD de 7Go font au maximum
1Go pour le meme type de raisons. A ma connaissance aucun systeme grand
public ne sait gerer des fichiers de plus de 2Go.


En fait, j'utilise déjà des fichiers de plus de 4 Go sur mon serveur actuel 32 bit.
Je change d'hébergeur actuellement, je rapatrie donc sur mon nouveau serveur les
fichiers de 4 Go mais mon nouveau serveur refuse en évoquant cet erreur.



Alors la, je ne sais pas. J'ai toujours cru que l'ext3 comme l'ext2 etaient
limites a 2Go.

Pourtant j'utilise les memes versions de redhat et le meme systeme de fichier.
Je suppose qu'il doit y avoir une option dans la compilation du noyau..... mais je
n'ai pas envie de recompiler .... Il n'y a pas d'autres moyens? genre une nouvelle
librairie à installer



J'ai regarde dans le menu de config du noyau, je n'ai rien trouve qui
permette de specifier quoi que ce soit. Mais peut-etre que ext2 et ext3 vont
jusqu'a 4Go (sans signe).

--
Saïd.


Avatar
g.patel
On 31 Jan 2004 13:05:28 GMT, =?iso-8859-1?Q?Saïd? wrote:

(...)
J'ai regarde dans le menu de config du noyau, je n'ai rien trouve qui
permette de specifier quoi que ce soit. Mais peut-etre que ext2 et ext3 vont
jusqu'a 4Go (sans signe).


La plupart des systèmes récents ont été adaptés pour gérer des
déplacements sur 64 bits, essayer :

nm -D /lib/libc.so.6 | grep 64

Gérard Patel

Avatar
Sébastien X
Salut Gérard,

J'obtient :

nm -D /lib/libc.so.6 | grep 64
00042240 T a64l
000ab7d0 T alphasort64
000ab7a0 T alphasort64
000d6c10 T creat64
00065050 T fgetpos64
0006bf90 T fgetpos64
000651e0 W fopen64
0006aa90 T freopen64
0006ad50 T fseeko64
0006c200 T fsetpos64
00065220 T fsetpos64
000d54a0 W fstatfs64
000d5d40 W fstatvfs64
0006ae60 T ftello64
000de4d0 W ftruncate64
000d8e00 T ftw64
00066430 T fwscanf
000d5000 T __fxstat64
000d5000 T __fxstat64
000ab8c0 T getdirentries64
000dbb30 T getrlimit64
000dc090 T getrlimit64
000b3470 T glob64
000b1e50 T glob64
000b2e10 T globfree64
0006bf90 T _IO_fgetpos64
00065050 T _IO_fgetpos64
00071640 T _IO_file_overflow
00065220 T _IO_fsetpos64
0006c200 T _IO_fsetpos64
00064040 T _IO_padn
00064350 T _IO_popen
00064410 T _IO_proc_close
00064110 T _IO_proc_open
000645b0 T _IO_puts
00064850 T _IO_seekoff
00064a00 T _IO_seekpos
00064b00 T _IO_setbuffer
00064c30 T _IO_setvbuf
00064de0 T _IO_ungetc
00064ee0 T _IO_vsprintf
00042290 T l64a
000e3510 T __libc_lseek64
000d5fb0 T __libc_open64
000d36d0 T __libc_pread64
000d37b0 T __libc_pwrite64
000d6810 T lockf64
000e3510 W lseek64
000d51b0 T __lxstat64
000d51b0 T __lxstat64
000dd340 T mkstemp64
000dfef0 W mmap64
000d8e30 T nftw64
0013a364 B _nl_msg_cat_cntr
000d5fb0 W open64
000d5fb0 W __open64
00064350 T popen
000daf20 T posix_fadvise64
000db050 T posix_fallocate64
000d36d0 W pread64
000d36d0 W __pread64
000645b0 W puts
000d37b0 W pwrite64
000d37b0 W __pwrite64
000aae80 T readdir64
000aaf70 T readdir64
000ab1f0 T readdir64_r
000ab050 T readdir64_r
000ab5a0 T scandir64
000ab3a0 T scandir64
000db240 T sendfile64
00064b00 W setbuffer
000af640 W setpgid
000af640 T __setpgid
000dbbc0 T setrlimit64
00064c30 W setvbuf
000d53e0 W statfs64
000d5c70 W statvfs64
00061950 T tmpfile64
000de3f0 T truncate64
000e3640 W umount2
00064de0 W ungetc
000ab830 T versionsort64
000ab800 T versionsort64
00064ee0 W vsprintf
00064fb0 W vsscanf
00064fb0 W __vsscanf
000664b0 W vswprintf
00066470 T vwscanf
00111450 T xdr_int64_t
00111640 T xdr_uint32_t
00111520 T xdr_uint64_t
000d4e50 T __xstat64
000d4e50 T __xstat64

Est ce que par défaut LFS( large File support) n'est pas implémenté dans le noyau?

J'ai trouvé une URL la dessus mais ca ne m'en dit pas plus:
http://www.google.fr/search?qÊche:j_P6ghznJ6AC:www.suse.de/~aj/linux_lfs.html+file+size+limitation+xfs&hl=fr&ie=UTF-8

La plupart des systèmes récents ont été adaptés pour gérer des
déplacements sur 64 bits, essayer :

nm -D /lib/libc.so.6 | grep 64

Gérard Patel


--
Message monitoré par axinews : http://www.axinews.com/

Avatar
Sébastien X
Je me demande si ce n'est tout simplement pas wget qui ne gère pas les fichiers de
plus de 2 Go.....?

--
Message monitoré par axinews : http://www.axinews.com/
Avatar
Qing Liu
"Sébastien" writes:

Bonjour,

J'ai cet erreur "Débordement de la taille permise pour un fichier" lorsque
j'essais de créer des fichiers plus gros que 2.15 GigaOctets. Je suis
pourtant en ext3 et Red Hat Linux (2.4.20-8)......

Comment remédier au problème? (j'ai bien unlimited partout avec la commande
ulimit -a)


Curieux, sur une Redhat 7.2:
$ dd if=/dev/zero of=LARGE bs=1M count%00
2500+0 enregistrements lus.
2500+0 enregistrements écrits.
$ ls -sh LARGE
2.5G LARGE

Pour travailler avec les fichiers de > 2Go, il faut avoir un
noyau récent (2.2._je_ne_sais_plus_combien), une glibc > 2.2
et que les outils soient recompliés avec le support des fichiers
64 bits.
http://www.suse.de/~aj/linux_lfs.html

Le système de fichiers ext2/ext3 supporte des fichiers de 16Go à
2048 Go suivant la taille du bloc (/usr/src/linux/filesystems/ext2.txt).


--
Liu

Avatar
TiChou
Dans l'article news:,
Saïd écrivait :

Sébastien X :
la seule solution est de decouper tes données en tranches de 2Go. Tu
remarqueras au passage que les fichiers sur un DVD de 7Go font au
maximum 1Go pour le meme type de raisons. A ma connaissance aucun
systeme grand public ne sait gerer des fichiers de plus de 2Go.




NTFS qui supporte des fichiers de 16Go (voire plus).

En fait, j'utilise déjà des fichiers de plus de 4 Go sur mon serveur
actuel 32 bit. Je change d'hébergeur actuellement, je rapatrie donc
sur mon nouveau serveur les fichiers de 4 Go mais mon nouveau
serveur refuse en évoquant cet erreur.



Avec quels outils et quelles méthode sont rapatriés ces fichiers ?

Alors la, je ne sais pas. J'ai toujours cru que l'ext3 comme l'ext2
etaient limites a 2Go.


C'était le cas sur les vieux systèmes (glibc < 2.1.3 et kernel < 2.4.0).
Depuis le suport des fichiers larges (LFS) a été introduit dans la glibc et
dans le kernel (du moins pour les systèmes de fichiers standard comme ext2/3
et reiserfs).

Pourtant j'utilise les memes versions de redhat et le meme systeme
de fichier.
Je suppose qu'il doit y avoir une option dans la compilation du
noyau..... mais je n'ai pas envie de recompiler .... Il n'y a pas
d'autres moyens? genre une nouvelle librairie à installer



Quelles versions de noyau et de glibc utilisez vous ? J'imagine suffisement
récentes pour que ces versions intègre le LFS.
Au niveau du kernel il n'y a pas d'option particulière.
Pour la glibc je ne sais pas. Je sais que c'est le cas pour la uClibc.
Il me semble aussi que les programmes devant manipuler des fichiers excedant
2Go doivent être compilé avec certaines options. C'est ce qu'indique la
documentation de la glibc (info libc 'Feature Test Macros').

J'ai regarde dans le menu de config du noyau, je n'ai rien trouve qui
permette de specifier quoi que ce soit. Mais peut-etre que ext2 et
ext3 vont jusqu'a 4Go (sans signe).


Extrait de /usr/src/linux/Documentation/filesystems/ext2.txt :

Limitations
-----------

...

Filesystem block size: 1kB 2kB 4kB 8kB

File size limit: 16GB 256GB 2048GB 2048GB
Filesystem size limit: 2047GB 8192GB 16384GB 32768GB

On est loin de la limitation des 2Go. :)

Et pour résumer :

Type FS Taille fichier Taille FS

ext2 2048 Go (= 2 To) 32768 Go (= 32 To)
ReiserFS 1 Eo (= 1048576 To) 16384 Go (= 16 To)
XFS 8 Eo (= 8388608 To) 8 Eo (= 8388608 To)
JFS 8 Eo (= 8388608 To) 4 Po (= 4096 To)
NFSv3 8 Eo (= 8388608 To) 8 Eo (= 8388608 To)

--
TiChou



Avatar
Iris Pallida
Le Sat, 31 Jan 2004 12:23:19 +0000, Sébastien a écrit :

Bonjour,

J'ai cet erreur "Débordement de la taille permise pour un fichier" lorsque
j'essais de créer des fichiers plus gros que 2.15 GigaOctets. Je suis
pourtant en ext3 et Red Hat Linux (2.4.20-8)......

Comment remédier au problème? (j'ai bien unlimited partout avec la commande
ulimit -a)


Quel est le type de fichier ?
j'ai eu ce problème avec une base de données...

Iris