Penguin

Differences between version 3 and predecessor to the previous major change of mkswap(8).

Other diffs: Previous Revision, Previous Author, or view the Annotated Edit History

Newer page: version 3 Last edited on Monday, March 1, 2004 7:19:39 pm by CraigBox Revert
Older page: version 1 Last edited on Tuesday, June 4, 2002 12:31:16 am by perry Revert
@@ -1,167 +1,59 @@
-MKSWAP  
-!!!MKSWAP  
-NAME  
-SYNOPSIS  
-DESCRIPTION  
-OPTIONS  
-SEE ALSO  
-----  
 !!NAME 
+mkswap - set up a Linux swap area  
  
-  
-mkswap - set up a Linux swap area  
 !!SYNOPSIS 
+__mkswap [[-c] [[-v__ ''N'' __] [[-f] [[-p __ ''PSZ'' __] __ ''device'' __ [[__ ''size'' __]__  
  
-  
-__mkswap [[-c] [[-v__''N''__] [[-f] [[-p__  
-''PSZ''__]__ ''device''  
-__[[__''size''__]__  
 !!DESCRIPTION 
+__mkswap__ sets up a Linux swap area on a device or in a file.  
  
+(After creating the swap area, you need the __swapon__ command to start using it. Usually swap areas are listed in ''/etc/fstab'' so that they can be taken into use at boot time by a __swapon -a__ command in some boot script.)  
  
-__mkswap__ sets up a Linux swap area on a device or in a  
- file. 
+The ''device'' argument will usually be a disk partition (something like ''/dev/hda4'' or ''/dev/sdb7'' ) but can also be a file. The Linux kernel does not look at partition Id's, but many installation scripts will assume that partitions of hex type 82 (LINUX_SWAP) are meant to be swap partitions. (Warning: Solaris also uses this type. Be careful not to kill your Solaris partitions.)  
  
+The ''size'' parameter is superfluous but retained for backwards compatibility. (It specifies the desired size of the swap area in 1024-byte blocks. __mkswap__ will use the entire partition or file if it is omitted. Specifying it is unwise - a typo may destroy your disk.)  
  
-(After creating the swap area , you need the __swapon __  
-command to start using it. Usually swap areas are listed in  
-''/etc/fstab'' so that they can be taken into use at boot  
-time by a __swapon -a __ command in some boot  
-script .)  
+The ''PSZ'' parameter specifies the page size to use. It is almost always unnecessary (even unwise) to specify it , but certain old libc versions lie about the page size, so it is possible that __mkswap __ gets it wrong . The symptom is that a subsequent __swapon__ fails because no swap signature is found. Typical values for ''PSZ'' are 4096 or 8192
  
+Linux knows about two styles of swap areas, old style and new style. The last 10 bytes of the first page of the swap area distinguishes them: old style has `SWAP_SPACE', new style has `SWAPSPACE2' as signature.  
  
-The ''device'' argument will usually be a disk partition  
-(something like ''/dev/hda4'' or ''/dev/sdb7'') but  
-can also be a file . The Linux kernel does not look at  
-partition Id's , but many installation scripts will assume  
-that partitions of hex type 82 (LINUX_SWAP ) are meant to be  
-swap partitions . (Warning: Solaris also uses this type. Be  
-careful not to kill your Solaris partitions .) 
+In the old style, the rest of this first page was a bit map, with a 1 bit for each usable page of the swap area . Since the first page holds this bit map , the first bit is . Also, the last 10 bytes hold the signature. So, if the page size is S, an old style swap area can describe at most 8* (S-10 )-1 pages used for swapping . With S=4096 (as on i386), the useful area is at most 133890048 bytes (almost 128 MiB), and the rest is wasted . On an alpha and sparc64, with S=8192, the useful area is at most 535560992 bytes (almost 512 MiB ).  
  
+The old setup wastes most of this bitmap page, because zero bits denote bad blocks or blocks past the end of the swap space, and a simple integer suffices to indicate the size of the swap space, while the bad blocks, if any, can simply be listed. Nobody wants to use a swap space with hundreds of bad blocks. (I would not even use a swap space with 1 bad block.) In the new style swap area this is precisely what is done. The maximum useful size of a swap area now depends on the architecture. It is roughly 2GiB on i386, PPC, m68k, ARM, 1GiB on sparc, 512MiB on mips, 128GiB on alpha and 3TiB on sparc64.  
  
-The ''size'' parameter is superfluous but retained for  
-backwards compatibility . (It specifies the desired size of  
- the swap area in 1024-byte blocks. __mkswap__ will use  
-the entire partition or file if it is omitted. Specifying it  
-is unwise - a typo may destroy your disk .)  
+Note that before 2.1 .117 the kernel allocated one byte for each page, while it now allocates two bytes, so that taking a swap area of 2 GiB in use might require 2 MiB of kernel memory
  
+Presently, Linux allows 8 swap areas. The areas in use can be seen in the file ''/proc/swaps'' (since 2.1.25).  
  
-The ''PSZ'' parameter specifies the page size to use. It  
-is almost always unnecessary (even unwise) to specify it,  
-but certain old libc versions lie about the page size, so it  
-is possible that __mkswap__ gets it wrong. The symptom is  
-that a subsequent __swapon__ fails because no swap  
-signature is found. Typical values for ''PSZ'' are 4096  
-or 8192
+__mkswap__ refuses areas smaller than 10 pages
  
+If you don't know the page size that your machine uses, you may be able to look it up with "cat /proc/cpuinfo" (or you may not - the contents of this file depend on architecture and kernel version).  
  
-Linux knows about two styles of swap areas , old style and  
-new style. The last 10 bytes of the first page of the swap  
-area distinguishes them: old style has `SWAP _SPACE' , new  
-style has `SWAPSPACE2' as signature
+To setup a swap file , it is necessary to create that file before initializing it with __mkswap ,__ e.g . using a command like  
  
+ # dd if=/dev/zero of=swapfile bs=1024 count=65536 %%%  
  
-In the old style, the rest of this first page was a bit map,  
-with a 1 bit for each usable page of the swap area. Since  
-the first page holds this bit map , the first bit is . Also,  
-the last 10 bytes hold the signature. So, if the page size  
-is S, an old style swap area can describe at most 8* (S-10)- 1  
-pages used for swapping. With S=4096 (as on i386 ), the  
-useful area is at most 133890048 bytes (almost 128 MiB), and  
-the rest is wasted. On an alpha and sparc64, with S=8192,  
-the useful area is at most 535560992 bytes (almost 512  
-MiB ). 
+Note that a swap file must not contain any holes (so , using cp (1) to create the file is not acceptable ). 
  
  
-The old setup wastes most of this bitmap page, because zero  
-bits denote bad blocks or blocks past the end of the swap  
-space, and a simple integer suffices to indicate the size of  
-the swap space, while the bad blocks, if any, can simply be  
-listed. Nobody wants to use a swap space with hundreds of  
-bad blocks. (I would not even use a swap space with 1 bad  
-block.) In the new style swap area this is precisely what is  
-done. The maximum useful size of a swap area now depends on  
-the architecture. It is roughly 2GiB on i386, PPC, m68k,  
-ARM, 1GiB on sparc, 512MiB on mips, 128GiB on alpha and 3TiB  
-on sparc64.  
-  
-  
-Note that before 2.1.117 the kernel allocated one byte for  
-each page, while it now allocates two bytes, so that taking  
-a swap area of 2 GiB in use might require 2 MiB of kernel  
-memory.  
-  
-  
-Presently, Linux allows 8 swap areas. The areas in use can  
-be seen in the file ''/proc/swaps'' (since  
-2.1.25).  
-  
-  
-__mkswap__ refuses areas smaller than 10  
-pages.  
-  
-  
-If you don't know the page size that your machine uses, you  
-may be able to look it up with  
-  
-  
-To setup a swap file, it is necessary to create that file  
-before initializing it with __mkswap ,__ e.g. using a  
-command like  
-  
-  
-# dd if=/dev/zero of=swapfile bs=1024 count=65536  
-Note that a swap file must not contain any holes (so, using cp(1) to create the file is not acceptable).  
 !!OPTIONS 
  
+;__-c__ : Check the device (if it is a block device) for bad blocks before creating the swap area. If any are found, the count is printed.  
+;__-f__ : Force - go ahead even if the command is stupid. This allows the creation of a swap area larger than the file or partition it resides on. On SPARC, force creation of the swap area. Without this option __mkswap__ will refuse to create a v0 swap on a device with a valid SPARC superblock, as that probably means one is going to erase the partition table.  
+;__-p __ ''PSZ'' : Specify the page size to use.  
+;__-v0__ : Create an old style swap area.  
+;__-v1__ : Create a new style swap area.  
  
-__-c __ 
+If no -v option is given, __mkswap __ will default to new style, but use old style if the current kernel is older than 2.1.117 (and also if PAGE_SIZE is less than 2048). The new style header does not touch the first block, so may be preferable, in case you have a boot loader or disk label there. If you need to use both 2.0 and 2.2 kernels, use the -v0 option when creating the swapspace.  
  
  
-Check the device (if it is a block device ) for bad blocks  
-before creating the swap area. If any are found , the count  
-is printed.  
+!!SEE ALSO  
+fdisk (8 ), swapon(8)  
  
+----  
  
-__-f__  
  
-  
-Force - go ahead even if the command is stupid. This allows  
-the creation of a swap area larger than the file or  
-partition it resides on. On SPARC , force creation of the  
-swap area. Without this option __ mkswap__ will refuse to  
-create a v0 swap on a device with a valid SPARC superblock ,  
-as that probably means one is going to erase the partition  
-table.  
-  
-  
-__-p__ ''PSZ''  
-  
-  
-Specify the page size to use.  
-  
-  
-__-v0__  
-  
-  
-Create an old style swap area.  
-  
-  
-__-v1__  
-  
-  
-Create a new style swap area.  
-  
-  
-If no -v option is given, __mkswap__ will default to new  
-style, but use old style if the current kernel is older than  
-2.1.117 (and also if PAGE_SIZE is less than 2048). The new  
-style header does not touch the first block, so may be  
-preferable, in case you have a boot loader or disk label  
-there . If you need to use both 2.0 and 2.2 kernels, use the  
--v0 option when creating the swapspace.  
-!!SEE ALSO  
-  
-  
-fdisk(8), swapon(8)  
-----  
+Question: After I create a swapfile (with dd) , call mkswap  
+on it , call swapon, do I need to edit /etc/fstab so the  
+swapfile will be remounted upon next boot? More details  
+than just " in some boot script" would be nice
This page is a man page (or other imported legacy content). We are unable to automatically determine the license status of this page.