由于内存不足,我的编译在Solaris 11.3上失败了。这个盒子是一个UltraSPARC工作站,有600 GB的驱动器,8GB的内存和一个新的操作系统安装。这是绝对令人困惑的,没有足够的内存系统,我正在痛苦的工作。
我试图跟随在Solaris系统上添加交换空间来增加更多的空间。
# Step 1
$ sudo su -
...
# Step 2
# mkdir /var
mkdir: Failed to make directory "/var"; File exists
# mkfile 2048m /var/swap
# Step 3
# ls -l /var/swap
-rw------- 1 root root 2147483648 Jul 16 11:42 /var/swap
# Step 4
# swap -a /var/swap
"/var/swap" is not valid for swapping.
It must be a block device or a regular file with the
"save user text on execution" bit set.我有两个问题。首先,甲骨文有什么问题,几乎每个文档都是错误的?
第二,如何创建该死的交换空间?如何使T出现在ls列表中?
下面是文档的步骤3。注意添加的T:
通过键入: ls -l /-l/swap file -name来验证是否创建了该文件,新文件出现在目录中。例如: ls -l /foo/16 16mswap rw
发布于 2018-07-16 13:12:34
您找到的页面与Solaris Studio 12.3有关,它可以追溯到2011年,以及Solaris仍然使用交换文件的时候。对于使用ZFS作为根文件系统的Solaris 11.3,进程略有不同,因为需要真正的块设备。幸运的是,ZFS通过ZFS卷使使用真正的块设备非常容易。
首先,检查现有卷:
zfs list -t volume您很可能会看到一个名为swap @ /rpool/swap的卷,因此您需要一个新设备的不同名称,比如swap2。
我看到的是:
bash-[501]# zfs list -t volume
NAME USED AVAIL REFER MOUNTPOINT
rpool/dump 3.08G 139G 2.99G -
rpool/swap 2.06G 139G 2.00G -另外,看看您现有的交换设备:
bash-[502]# swap -l
swapfile dev swaplo blocks free
/dev/zvol/dsk/rpool/swap 275,1 8 4194296 4194296下一步是创建新卷。在下一个命令中,-V选项指示我们正在创建一个原始块设备,而不是一个具有文件系统的设备,而2G的大小是:
bash-[503]# zfs create -V 2G rpool/swap2现在,您将看到您的卷列表已经更改:
bash-[504]# zfs list -t volume
NAME USED AVAIL REFER MOUNTPOINT
rpool/dump 3.08G 137G 2.99G -
rpool/swap 2.06G 137G 2.00G -
rpool/swap2 2.06G 137G 2.00G -然后,您可以以交换方式激活该块设备:
bash-[505]# swap -a /dev/zvol/dsk/rpool/swap2而且,和往常一样,您可以看到使用swap -l的交换设备。
bash-[506]# swap -l
swapfile dev swaplo blocks free
/dev/zvol/dsk/rpool/swap 275,1 8 4194296 4194296
/dev/zvol/dsk/rpool/swap2 275,3 8 4194296 4194296发布于 2018-07-16 12:24:32
可以在文件上设置T属性
chmod +t filename注意,如果文件驻留在ZFS文件系统上,则不支持使用交换文件。
https://unix.stackexchange.com/questions/456535
复制相似问题