Re: File Size question

Theodore Y. Ts'o (tytso@mit.edu)
Tue, 24 Nov 1998 12:57:50 -0500


Date: Mon, 23 Nov 1998 15:29:35 -0500 (EST)
From: Phillip Mikulak <pmikulak@iusb.edu>

However, the largest size file I can create is 1073741824 bytes. I
have explored the kernel source files and have found 2 source files
where a "file too big" message can crop up: file.c and inode.c under
/usr/src/linux/fs/ext2. After some experimenting I found that code
within the inode.c was limiting the size a file could be. When I
bypassed this code, I was able to make a 1.5 gig. file.

Needless to say, I have a feeling this is a dangerous thing to do. My
question is, is there any way around the 1.07 gigabyte limitation? Any
advice someone might have would be greatly appreciated.

The rlim[RLIMIT_FSIZE] in the code fragmented you quoted is the hint.
Someone has configured a resource limit on your account. This isn't
standard for RedHat, so it's either something specific to Debian, or
something your system administrator set up for some reason.

>From the bash(1) man page, the description of the ulimit command. See
also the man pages for getrlimit(3) and setrlimit(3):

ulimit [-SHacdfmstpnuv [limit]]

Ulimit provides control over the resources available to the
shell and to processes started by it, on systems that allow such
control. The value of limit can be a number in the unit
specified for the resource, or the value unlimited. The H and S
options specify that the hard or soft limit is set for the given
resource. A hard limit cannot be increased once it is set; a
soft limit may be increased up to the value of the hard limit.
If neither H nor S is specified, the command applies to the soft
limit. If limit is omitted, the current value of the soft
limit of the resource is printed, unless the H option is given.
When more than one resource is specified, the limit name and unit
is printed before the value. Other options are interpreted as
follows:

-a all current limits are reported
-c the maximum size of core files created
-d the maximum size of a process's data segment
-f the maximum size of files created by the shell
-m the maximum resident set size
-s the maximum stack size
-t the maximum amount of cpu time in seconds
-p the pipe size in 512-byte blocks (this may not be set)
-n the maximum number of open file descriptors (most systems
do not allow this value to be set, only displayed)
-u the maximum number of processes available to a single user
-v The maximum amount of virtual memory available to the shell

An argument of -- disables option checking for the rest of the
arguments. If limit is given, it is the new value of the
specified resource (the -a option is display only). If no option
is given, then -f is assumed. Values are in 1024-byte incre-
ments, except for -t, which is in seconds, -p, which is in units
of 512-byte blocks, and -n and -u, which are unscaled values.
The return status is 0 unless an illegal option is encountered, a
non-numeric argument other than unlimited is supplied as limit,
or an error occurs while setting a new limit.

- Ted

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/