Ubuntu 18 上的加密交换出现间歇性错误

Ubuntu 18 上的加密交换出现间歇性错误

想要加密交换并且我发现唯一可以按我想要的方式执行此操作的脚本是:

    sudo -i
    cd /root 
    mkdir -p ./.myfolder 
    cd ./.myfolder 
    swapsize='4G' 
    curdir=$(pwd) 
    flNmDev="myfile"
    flPtDev="$curdir/$flNmDev" 
    flNmKey="mykeyfile" 
    flPtKey="$curdir/$flNmKey" 
    flNmMnt="mydevname" 
    flPtMnt="$curdir/$flNmMnt" 
    fallocate -l $swapsize $flPtDev &> /dev/null
    chmod 0600 $flPtDev
    chown root $flPtDev 
    dd if=/dev/urandom of=$flPtKey bs=4096 count=1 conv=notrunc,noerror &> /dev/null 
    sudo chmod 0600 $flPtKey
    chown root $flPtKey
cat << EOF > /etc/crypttab
# <target name> <source device>         <key file>      <options>
$flNmMnt $flPtDev $flPtKey swap,offset=1024,cipher=aes-xts-plain64
EOF
    cryptdisks_start $flNmMnt &> /dev/null
    mappedCryptPath="/dev/mapper/$flNmMnt"
    mkswap -L swapone $mappedCryptPath -f &> /dev/null
    rpl "/swap.img" "#/swap.img" /etc/fstab &> /dev/null
    echo "$mappedCryptPath none swap sw 0 0" >> /etc/fstab
    swapon -a 

在同一台机器和同一版本的 Ubuntu 上,它有时可以工作有时会在启动时崩溃。
每次启动时都会出现以下输出:

uname -v

#54-Ubuntu SMP Mon May 6 18:46:08 UTC 2019

-

journalctl -b

 systemd[1]: Mounting /boot...
swapon[995]: swapon: /dev/mapper/mydevname: swapon failed: Device or resource busy
mkswap[991]: mkswap: unable to erase bootbits sectors
 systemd[1]: [email protected]: Control process exited, code=exited status=1
 systemd[1]: [email protected]: Failed with result 'exit-code'.
 systemd[1]: Failed to start Cryptography Setup for mydevname.
 systemd[1]: Dependency failed for Local Encrypted Volumes.
 systemd[1]: cryptsetup.target: Job cryptsetup.target/start failed with result 'dependency'.
 systemd[1]: dev-mapper-mydevname.swap: Swap process exited, code=exited status=255
 systemd[1]: dev-mapper-mydevname.swap: Failed with result 'exit-code'.
 systemd[1]: Failed to activate swap /dev/mapper/mydevname.
 systemd[1]: Dependency failed for Swap.
 systemd[1]: swap.target: Job swap.target/start failed with result 'dependency'.

-

cat /proc/meminfo | grep Sw

SwapCached:            0 kB
SwapTotal:             0 kB
SwapFree:              0 kB

-

cat /proc/swaps 

Filename                Type        Size    Used    Priority

-

cat /proc/swaps 

Filename                Type        Size    Used    Priority
/dev/dm-1                               partition   4193788 72704   -2

-

cat /proc/meminfo | grep Sw

SwapCached:        10644 kB
SwapTotal:       4193788 kB
SwapFree:        4102396 kB

-

journalctl -b

mkswap[868]: mkswap: /dev/mapper/mydevname: warning: wiping old swap signature.
systemd[1]: Found device /dev/mapper/mydevname.
systemd[1]: Activating swap /dev/mapper/mydevname...
mkswap[868]: Setting up swapspace version 1, size = 4 GiB (4294438912 bytes)
mkswap[868]: no label, UUID=348deb8f-7457-4829-a1a2-0ebd1b61f6d6
systemd[1]: Started Cryptography Setup for mydevname.
systemd[1]: Reached target Local Encrypted Volumes.
kernel: Adding 4193788k swap on /dev/mapper/mydevname.  Priority:-2 extents:1 across:4193788k FS
systemd[1]: Activated swap /dev/mapper/mydevname.
systemd[1]: Reached target Swap.

-

cat /proc/swaps 

Filename                Type        Size    Used    Priority
/dev/dm-1                               partition   4193788 0   -2

-

journalctl -b

mkswap[683]: mkswap: unable to erase bootbits sectors
systemd[1]: [email protected]: Control process exited, code=exited status=1
systemd[1]: [email protected]: Failed with result 'exit-code'.
systemd[1]: Failed to start Cryptography Setup for mydevname.
systemd[1]: Dependency failed for Local Encrypted Volumes.
systemd[1]: cryptsetup.target: Job cryptsetup.target/start failed with result 'dependency'.
systemd[1]: Dependency failed for dev-mapper-mydevname.device.
systemd[1]: Dependency failed for /dev/mapper/mydevname.
systemd[1]: Dependency failed for Swap.
systemd[1]: swap.target: Job swap.target/start failed with result 'dependency'.
systemd[1]: dev-mapper-mydevname.swap: Job dev-mapper-mydevname.swap/start failed with result 'dependency'.
systemd[1]: dev-mapper-mydevname.device: Job dev-mapper-mydevname.device/start failed with result 'dependency'.
systemd[1]: Activating swap /dev/mapper/mydevname...
systemd[1]: Starting Cryptography Setup for mydevname...
systemd-cryptsetup[688]: Volume mydevname already active.
kernel: Adding 4193788k swap on /dev/mapper/mydevname.  Priority:-2 extents:1 across:4193788k FS
systemd[1]: Activated swap /dev/mapper/mydevname.
mkswap[690]: mkswap: error: /dev/mapper/mydevname is mounted; will not make swapspace
systemd[1]: [email protected]: Control process exited, code=exited status=1
systemd[1]: [email protected]: Failed with result 'exit-code'.
systemd[1]: Failed to start Cryptography Setup for mydevname.

-

cat /proc/meminfo | grep Sw

SwapCached:            0 kB
SwapTotal:       4193788 kB
SwapFree:        4193788 kB

-

答案1

我认为你在我的问题,遇到了和你同样的问题,但是这里有足够的内存,我通过执行以下操作解决了所有交换问题:

cp /etc/sysctl.conf /etc/sysctl.conf.bkp 
echo '' > /etc/sysctl.conf
echo 'vm.swappiness=0' >> /etc/sysctl.conf
echo 'vm.vfs_cache_pressure=50' >> /etc/sysctl.conf
rpl "/swap.img" "#/swap.img" /etc/fstab &> /dev/null
DEBIAN_FRONTEND=noninteractive apt-get -yq install zram-config &> /dev/null 

相关内容