xref: /freebsd/share/man/man7/growfs.7 (revision 0d66206fff44f864ea8a4b220c3a53b4caa959a0)
1.\" Copyright 2014 John-Mark Gurney
2.\" All rights reserved.
3.\"
4.\" Redistribution and use in source and binary forms, with or without
5.\" modification, are permitted provided that the following conditions
6.\" are met:
7.\" 1. Redistributions of source code must retain the above copyright
8.\"    notice, this list of conditions and the following disclaimer.
9.\" 2. Redistributions in binary form must reproduce the above copyright
10.\"    notice, this list of conditions and the following disclaimer in the
11.\"    documentation and/or other materials provided with the distribution.
12.\"
13.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
14.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
17.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23.\" SUCH DAMAGE.
24.\"
25.\" $FreeBSD$
26.\"
27.Dd November 22, 2022
28.Dt GROWFS 7
29.Os
30.Sh NAME
31.Nm growfs ,
32.Nm growfs_fstab
33.Nd start up scripts to grow the root file system and add swap
34.Sh DESCRIPTION
35The
36.Nm
37script normally runs at the first boot after system installation.
38If the boot disk is larger than the root file system and boot partitions,
39and the root file system is in the last partition,
40.Nm
41can expand the root file system.
42It can also add a swap partition, with a default size of 10% of the boot disk.
43Swap is limited to twice the memory size up to 4 GB,
448 GB up to 8 GB of memory, and memory size over 8 GB.
45It is also limited to the
46.Xr sysctl 8
47value of
48.Li vm.swap_maxpages
49divided by 2.
50By default, no swap partition is created if an existing swap partition is found
51or is listed in
52.Pa /etc/fstab ,
53or the disk is under 15 GB.
54The
55.Nm growfs_fstab
56script adds any new swap partition to
57.Pa /etc/fstab
58after the root file system is made writable,
59and enables its use as a dump partition if the
60.Va dumpdev
61variable from
62.Xr rc.conf 5
63is set to
64.Li AUTO .
65.Pp
66The following options in
67.Pa /etc/rc.conf
68control the behavior of
69.Nm :
70.Bl -tag -width ".Va growfs_swap_size" -offset indent
71.It Va growfs_enable
72.Pq Dq Li NO
73If set to
74.Dq Li YES ,
75the first time the machine boots, the root file system will be automatically
76expanded, if possible, to fill up all available space after it,
77after optionally adding a swap device at the end.
78.It Va growfs_swap_size
79.Pq Dq Li \&
80If set to
81.Dq Li 0 ,
82the addition of a swap partition is disabled.
83An empty value
84.Pq Dq Li \&
85allows the creation of a swap partition with the default size.
86If set to another value,
87the swap partition will be created with the specified size in bytes,
88even if another swap partition is detected.
89.El
90.Pp
91A setting for
92.Va growfs_swap_size
93can be set in the kernel environment, in which case it overrides
94the value from
95.Pa /etc/rc.conf .
96.Pp
97To expand the root file system without rebooting, run the following command:
98.Dl % /etc/rc.d/growfs onestart
99In addition, if a swap partition is added, run the command:
100.Dl % /etc/rc.d/growfs_fstab onestart
101Note that if a disk is expanded again,
102and if the root file system had previously been expanded
103and a swap partition added, it is necessary to delete the swap
104partition before this procedure
105in order to expand the root file system to the new size.
106A new swap partition can be created during the expansion.
107.Sh IMPLEMENTATION NOTES
108The
109.Nm
110script only attempts to expand the root file system,
111and free space must be available immediately after the root partition.
112It is normally used on images that have a single file system.
113The script requires that
114.Xr awk 1
115be present and in the path.
116This usually means that
117.Pa /usr
118must be available prior to running the script.
119.Sh FILES
120.Bl -tag -compact -width Pa
121.It Pa /etc/fstab
122.It Pa /etc/rc.conf
123.El
124.Sh EXIT STATUS
125.Ex -std
126.Sh SEE ALSO
127.Xr fstab 5 ,
128.Xr rc.conf 5 ,
129.Xr growfs 8 ,
130.Xr zpool 8
131.Sh HISTORY
132The
133.Nm
134manual page first appeared in
135.Fx 10.1 .
136The ability to add a swap partition was added in
137.Fx 14.0 .
138.Sh AUTHORS
139The man page and script were written by
140.An John-Mark Gurney Aq Mt jmg@FreeBSD.org .
141The ability to create a swap partition was added by
142.An Michael Karels Aq Mt karels@FreeBSD.org .
143