rdev - query/set image root device, RAM disk size, or video mode
rdev [-Rrvh] [-o offset] [image [value [offset]]]
rdev [-o offset] [image [root_device [offset]]]
ramsize [-o offset] [image [size [offset]]]
vidmode [-o offset] [image [mode [offset]]]
rootflags [-o offset] [image [flags [offset]]]
With no arguments, rdev outputs an /etc/mtab line for the current root
file system. With no arguments, ramsize, vidmode, and rootflags print
In a bootable image for the Linux kernel on i386, there are several
pairs of bytes which specify the root device, the video mode, and the
size of the RAM disk. These pairs of bytes, by default, begin at
offset 504 (decimal) in the kernel image:
498 Root flags
(500 and 502 Reserved)
504 RAM Disk Size
506 VGA Mode
508 Root Device
(510 Boot Signature)
rdev will change these values.
Typical values for the image parameter, which is a bootable Linux
kernel image, might be:
When using the rdev command, the root_device parameter might be
One may also specify the device by a comma-separated pair of decimal
For the ramsize command, the size parameter specifies the size of the
RAM disk in kilobytes. 2.0.x kernels and newer dynamically allocate the
ramdisk and do not need this setting.
For the rootflags command, the flags parameter contains extra
information used when mounting root. Currently the only effect of
these flags is to force the kernel to mount the root filesystem in
readonly mode if flags is non-zero.
For the vidmode command, the mode parameter specifies the video mode:
-3 = Prompt
-2 = Extended VGA
-1 = Normal VGA
0 = as if "0" was pressed at the prompt
1 = as if "1" was pressed at the prompt
2 = as if "2" was pressed at the prompt
n = as if "n" was pressed at the prompt
If the value is not specified, the image will be examined to determine
the current settings.
-r Causes rdev to act like ramsize (Not relevant for 2.0.x and
-R Causes rdev to act like rootflags.
-v Causes rdev to act like vidmode.
-h Provides help.
The rdev utility, when used other than to find a name for the current
root device, is an ancient hack that works by patching a kernel image
at a magic offset with magic numbers. It does not work on architectures
other than i386. Its use is strongly discouraged. Use a boot loader
like SysLinux or LILO instead.
At offset 502 there used to be the device number of the swap device (in
Linux 0.12), and "rdev -s" or "swapdev" would set this. However, since
Linux 0.95 this constant is not used any longer, and the swap device is
specified using the swapon(2) system call.
At offset 504 there used to be the size of the ramdisk in kilobytes.
One would specify a size, and this much was grabbed off the top of
memory. In Linux 1.1.39 it became also possible to set this value on
the kernel command line. In Linux 1.3.48 the ramdisk setup was
changed. Ramdisk memory is now taken from the buffer cache, so that the
ramdisk can grow dynamically. The interpretation of the ramdisk word
was changed to a word of which the high order bit is a prompt flag (1:
prompt for ramdisk: "VFS: Insert ramdisk floppy and press ENTER" - this
is needed with a two-floppy boot), the next bit a load flag (1: load
ramdisk), and the low order 11 bits give the starting block number of
the root filesystem image (so that one can have a single floppy boot).
See also linux/Documentation/ramdisk.txt.
Originally by Werner Almesberger (firstname.lastname@example.org)
Modified by Peter MacDonald (pmacdona@sanjuan.UVic.CA)
rootflags support added by Stephen Tweedie (email@example.com)
The rdev command is part of the util-linux-ng package and is available