linux + 添加交换空间

Kin*_*vid 4 linux redhat lvm swap

我执行了以下程序以添加400m以进行交换,

我从 sdb 磁盘中取出400m用于交换增加

一切正常,但在最后一个命令之前,我执行了

mkswap /dev/rootvg/swap
Run Code Online (Sandbox Code Playgroud)

我从 mkswap 收到以下警告消息

mkswap: /dev/rootvg/swap: warning: don't erase bootbits sectors
    on whole disk. Use -f to force.
Setting up swapspace version 1, size = 2490364 KiB
no label, UUID=2f42fa37-987d-40a5-8cf6-5707e1d8f077
Run Code Online (Sandbox Code Playgroud)

最后swap按预期扩展到2.4G

但我并不担心 mkswap 命令的警告信息

请告知警告的含义:

mkswap: /dev/rootvg/swap: warning: don't erase bootbits sectors
on whole disk. Use -f to force.
Run Code Online (Sandbox Code Playgroud)

如果这样可以吗?

我在 linux redhat 机器上的程序 - 版本 6

# swapon -s
Filename                                Type            Size    Used      Priority
/dev/dm-1                               partition       2064380 0       -1

# free
        total       used       free     shared    buffers     cached
Mem:       5991892     539036    5452856        212      70444     270664
-/+ buffers/cache:     197928    5793964
 Swap:      2064380          0    2064380


# pvs
PV         VG      Fmt  Attr PSize  PFree
 /dev/sdb   rootvg  lvm2 a--u  7.97g 416.00m
 /dev/sdc   orahome lvm2 a--u 30.00g  15.00g

# lsblk /dev/sdb
NAME                  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sdb                     8:16   0    8G  0 disk
|-rootvg-swap (dm-1)  253:1    0    2G  0 lvm  [SWAP]
|-rootvg-slash (dm-2) 253:2    0  576M  0 lvm  /
|-rootvg-usr (dm-3)   253:3    0  1.4G  0 lvm  /usr
|-rootvg-home (dm-4)  253:4    0  256M  0 lvm  /home
|-rootvg-opt (dm-5)   253:5    0  416M  0 lvm  /opt
`-rootvg-var (dm-6)   253:6    0    3G  0 lvm  /var

# swapon -s
Filename                                Type            Size    Used     Priority
/dev/dm-1                               partition       2064380 0       -1

# swapoff /dev/rootvg/swap

# lvresize /dev/rootvg/swap -L +400m
 Rounding size to boundary between physical extents: 416.00 MiB.
 Size of logical volume rootvg/swap changed from 1.97 GiB (63 extents) to  2.38 GiB (76 extents).
 Logical volume swap successfully resized.

# mkswap /dev/rootvg/swap
mkswap: /dev/rootvg/swap: warning: don't erase bootbits sectors
    on whole disk. Use -f to force.
Setting up swapspace version 1, size = 2490364 KiB
no label, UUID=2f42fa37-987d-40a5-8cf6-5707e1d8f077

# swapon /dev/rootvg/swap

# free
         total       used       free     shared    buffers     cached
 Mem:       5991892     539680    5452212        212      70536     270892
 -/+ buffers/cache:     198252    5793640
 Swap:      2490364          0    2490364
Run Code Online (Sandbox Code Playgroud)

Rya*_*hin 6

看起来像是一个安全预防措施,以防止您破坏引导扇区等......当您可能打算使用一个分区时使用整个磁盘。

CentOS 6.5 或 Ubuntu 16.04 中不再出现此警告消息。

这个较旧的(2006 年)mkswap.c模糊地定义了引导位:http ://code.metager.de/source/xref/busybox/util-linux/mkswap.c

/*  char     bootbits[1024];    Space for disklabel etc. */
Run Code Online (Sandbox Code Playgroud)

从 CentOS 6.5 开始mkswap.c

        if (is_whole_disk_fd(fd, devname)) {
                /* don't zap bootbits on whole disk -- we know nothing
                 * about bootloaders on the device */
                whole = 1;
                zap = 0;
Run Code Online (Sandbox Code Playgroud)

我对 C 并不感兴趣,但新代码看起来更智能,并且可能会保留启动数据。我没有钻那么远。