Situacija sleduju6aja:
freebsd53_2# uname -r
5.3-RELEASE
freebsd53_2# cat /etc/rc.conf | grep swap
swapfile="/tmp/swap" # Set to name of swapfile if aux swapfile desired.
swapoff="YES" # Remove swap partitions upon shutdown
Tak vot pri perehode iz multiuser v single user rezim swap particii, kotorije
bili dobavleni v sistemu ispolzuja swapfile zna4enije v /etc/rc.conf faile
ostajutca. Swap particii, kotorije registrirujutca v sisteme ispolzuja /etc/fstab
fail mozno ubrat pri prehode v single user rezim prisvoiv swapoff peremennoi
zna4enije YES v faile /etc/rc.conf.
Pri obratnom perehode iz single user rezima v miltiuser rezim i pri uslovii 4to
zna4enije swapfile ne ravno NO, v sisteme povtorno registrirjetca/dobavlajetca e6e
odna swap particija dla odnogo i togo-ze faila. V takom slu4aje summarnij razmer sveh
swap particij v sisteme neveren da i kadznij raz ispolzujetca novoje md(4) ustroistvo.
Multiuser:
freebsd53_2# swapctl -l
Device: 1024-blocks Used:
/dev/ad0s1b 299848 0
/dev/md1 30720 0
Multiuser -> Single user:
# swapctl -l
Device: 512-blocks Used:
/dev/md1 61440 0
Single user -> Multiuser:
freebsd53_2# swapctl -sl
Device: 1024-blocks Used:
/dev/md1 30720 0
/dev/md2 30720 0
/dev/ad0s1b 299848 0
Total: 361288 0
Mne kazetca eto ne sovsem vernim povedenijem.Hotja vozmozno ja 4to-to nepravilno ponal
v nastroikah, odnako dobitca togo, 4tobi "uborka" swap particij proishodila s ispolzovanijem
originalnih sredstv mne ne udalos. Posemu ja vnes nebol6ije izmenenija v start/stop skripti.
Hotel bi usli6at mnenije nadora po etomu povodu.
freebsd53_2# cat /root/addswap.patch
--- addswap Sat Nov 27 23:31:00 2004
***************
*** 14,20 ****
name="addswap"
start_cmd="addswap_start"
! stop_cmd=":"
addswap_start()
{
--- 14,20 ----
name="addswap"
start_cmd="addswap_start"
! stop_cmd="addswap_stop"
addswap_start()
{
*************** addswap_start()
*** 26,31 ****
--- 26,48 ----
echo "Adding ${swapfile} as additional swap"
mdev=`mdconfig -a -t vnode -f ${swapfile}` && swapon /dev/${mdev}
fi
+ ;;
+ esac
+ }
+
+
+ addswap_stop()
+ {
+ case ${swapfile} in
+ [Nn][Oo] | '')
+ ;;
+ *)
+ for i in `swapctl -l | grep '^/dev/md[0-9]*' | cut -d ' ' -f 1 -`; do
+ echo "Removing ${swapfile} as additional swap"
+ swapoff ${i}
+ unit=`echo ${i} | sed 's/\/dev\/md//'`
+ mdconfig -d -u ${unit}
+ done
;;
esac
}
freebsd53_2# cat /root/swap1.patch
--- /etc/rc.d/swap1 Sat Nov 27 23:33:17 2004
***************
*** 13,19 ****
name="swap1"
stop_precmd='checkyesno swapoff || [ -n "$rc_force" ]'
start_cmd='swapon -a'
! stop_cmd='swapoff -a'
load_rc_config swap
run_rc_command "$1"
--- 13,27 ----
name="swap1"
stop_precmd='checkyesno swapoff || [ -n "$rc_force" ]'
start_cmd='swapon -a'
! stop_cmd='swap1_stop'
!
! swap1_stop()
! {
!
! swapoff -a
! /etc/rc.d/addswap stop
!
! }
load_rc_config swap
run_rc_command "$1"
freebsd53_2# chmod 755 addswap swap1
freebsd53_2# patch < /root/addswap.patch
Hmm... Looks like a new-style context diff to me...
The text leading up to this was:
--------------------------
|--- addswap Sat Nov 27 23:31:00 2004
--------------------------
Patching file addswap using Plan A...
Hunk #1 succeeded at 14.
Hunk #2 succeeded at 26.
done
freebsd53_2# patch < /root/swap1.patch
Hmm... Looks like a new-style context diff to me...
The text leading up to this was:
--------------------------
|--- /etc/rc.d/swap1 Sat Nov 27 23:33:17 2004
--------------------------
Patching file swap1 using Plan A...
Hunk #1 succeeded at 13.
done
freebsd53_2# chmod 555 addswap swap1
freebsd53_2# mv addswap.orig swap1.orig /root/
freebsd53_2# ls -l addswap swap1
-r-xr-xr-x 1 root wheel 862 Sep 3 00:13 addswap
-r-xr-xr-x 1 root wheel 432 Sep 3 00:13 swap1
Multiuser:
freebsd53_2# swapctl -l
Device: 1024-blocks Used:
/dev/ad0s1b 299848 0
/dev/md1 30720 0
Multiuser -> Single user:
# swapctl -l
Device: 512-blocks Used:
Single user -> Multiuser:
freebsd53_2# swapctl -sl
Device: 1024-blocks Used:
/dev/ad0s1b 299848 0
/dev/md0 30720 0
Total: 330568 0
P.S. Srazu izvinajus za translit.