LABEL X:
" vagy "COPY FOO X:DUMMY.DAT
"
FORMAT X:
SWAP SPACE
"-nek a DOS LABEL
paranccsal. Ellenőrizd a DIR paranccsal. Ezt külön lépésként
csináld. A FORMAT némely verziója úgy tűnik nem a boot szektorba teszi
- ahogy kellene - a kötetcimkét. (Megjegyzés: néhányan írták nekem, hogy
a kötetcimkét a gyökérkönyvtárban tároljuk. Igen, de legalább a DOS 5.0
óta a boot szektorban is benne kell lennie).
LABEL X:
DIR X:
Control Panelen
(vezérlőpult) válaszd a
"386 Enhanced
"-et, itt pedig a "Virtual Memory
"-t és csinálj egy
állandó (permanent
) swap file-t az X:
meghajtón maximális méretével
(A Windows megmondja a maximális méretet). A Windows esetleg panaszkodik
majd, hogy nem fog ilyen nagy swap file-t használni. Ne törődj az
üzenettel, csak hozd létre a file-t mindenképp.
/dev/winswap
-ból erre a
partícióra. Ha a partíció a hda7
, akkor írd ezt:
ln -s /dev/hda7 /dev/winswap
Megjegyzés: Használj symlink-et. A partíció neve számos konfigurációs
állományba belekerül és a következetlenség végzetes lehet.
UU-kódolt
program, ami megvizsgálja a partíciót és
kiszed belőle néhány speciális információt. Dekódold a következő file-t
(uudecode), csomagold ki gzip-pel, majd futtasd a következő módon:
msinfo /dev/winswap
begin 755 msinfo.gz
M'XL(`$$YNRT"`Y557TQ;51@_MW]HZ0AM'"$U-.28W([..>84%1%D2QH>',9*
M2S&VC);V=FV]T*;WWBD+1I)K'YH;DOJF#YH80GPR^J""D"R8-K('MS2;#Q*S
M%Y,E-P&592A$V:[?.;?M"FP/?DG/G^_[?7_Z_3G7PL313TT(?8P0<J"CI':8
M$5H^#:=5<KT^MQ`^UAQ1O*QUH0<.]B7S/FC[U!98Y;))]<*N^AG"^LB((J%E
MAFIM[A9U0O`;%:*7N#[L%G!_-IH34V(J,WUZ.CK%O6I#N4DTE,E-144Q-7T)
M>]_PX\M<3@!`'ZZ26[`-I7A.F!%$;JK.;21`!#.\-,5A/CK)\=B3FL:3F8PH
M<#$QDSO91Q%^>L%"Z@KW*"-NR3;""5SN,A?'NI[0=P0Q=#[P&&$5@3UNZ3VW
M=-(V`NYQ/)6CX)DC2F`KD!&C/!:R7"Q%]L-6`8'D+=]8T*^$V8@RR\;5\P9(
M^;\&T:F]E`Q`EI,_6YHCZBT#BJ09M0VV9!:XVKLF]0NX%'Z4R];\W](3A-%J
MI:`_&12!>@33QC0S'V8]?O5+0`;3UC23K)!"?@97N8R#:29MF/>R)PI>UJF)
MK%/-4QR39OSJE8,8MHZ)UC#`?1ZX'N!ZU`L'X;@.?X["C<1DUT%,9QW32C''
M"<98PQR#8#=(L'>96NQWR/4W1@>H3\'!OC3,MMN_"[,=A1OVK^XEH($[$S^H
MY@28=MB78-$/`=8)(L=\P*$5*I_LS@)_G7!=\Z9V@F"``Y$XQM[T!T>(WHNU
M/T9CH)YIZI("&9ZK32AR=DTN/QNZ."&7?27H_<(=_^=Q"U1N3Y.>!-E`$BY(
M;(4ZG)/[\_0F_54HY7\5[<!33)\2M%:Y(.THX_N%K?%2L9&(O=4>8F^@IV9(
M,<HEDU:17T'23M)GA#ANW-<F'J5-]>6!G2;BU+YN)@<RL.JBIFD4[:<###UG
MO3Z77WO?L?O+@@G\+(-<"X&QT"&#_N7@_\2;JGAEF&U1`JR#ZCD/Z]7HJ'ZH
M09_JNAZGJ^N?X5.39_AXMY!!?3@6G>X2,9^)QG%\!IZ@5`SSJ>EWN!SN>HCK
MLJ%F08R*J5B4YV=T0-R&J#UYJW>4#"7/#D,0/GG`0ZI@__`;6->]K!>C[<GD
M31/IQP>:!B]D?DT,*<;Y6=9Y]3:P][^W`?+>8F(1!*ZY7B1:BN=@D_XY9?0I
M'?ZT0=V@BBWIIV$47#Y@7-,9Q>0<*=7;NMW-NS2>9#_X3V)8()?A$;!`ALRW
M#&\%RO_^@9F6TP<]'M8J@'AFA"[JM]0(WCQ!`[.826!F&A@HG4JWU5R_KKL&
M9GNQF$;J[?NZ\YUZ?B].C,OEWI*\94J`:6LB?U,RK^2.([0QRQK(W!D2[K5M
M,G>&0B7A'K03F"'17*&L#9XU@+U2L9K4-GCIG(K(NE:SM,>SM,?;X,T:&U6,
MT./E%NAUTNE_$,^E(A0M!B7K[D'>X6'\FC25Q3W=+V3YLR^CXJW.S0>#54*#
M#ZE^AI+N-35^_>![U4!?@VQ%ET<L!BC>MC5"\GH->"T6'4/2NS>((N0,DT>_
9K6^!S%65KRS`,`,UVB43\!]-BKG]B`<``#5"
`
end
A fenti program a.out
formátumú, ami nem minden rendszeren fut, ezért
itt áll egy perl script, ami ugyanazt csinálja:
#!/usr/bin/perl
# -*- perl -*-
if ( $#ARGV < 0 ) {
print "Usage: $0 partition\n";
exit 1;
}
open(PARTN, $ARGV[0]) || die "Cannot open $ARGV[0]\n";
read(PARTN, $buf, 512) || die "Cannot read boot sector\n";
close(PARTN);
($jmp,$oem,$bps,$spc,$rs,$fat,$rde,$sec,$media,$fatsec,$spt,$head,
$hidden,$hugesec,$drive,$x1,$xbs,$volid,$label,$fstype) =
unpack("a3a8SCSCSSCSSSLLCCCLa11a8", $buf);
$rdeps = int($bps/32);
$rds = int(($rde+$rdeps-1)/$rdeps);
print 'Formatting DOS version: ', $oem, "\n";
print 'Filesystem: ', $fstype, "\n";
print 'Volume label: ', $label, "\n";
print 'Sector size: ', $bps, "\n";
print 'Reserved sectors: ', $rs, "\n";
print 'FAT sectors: ', $fat*$fatsec,
' (', $fat, 'x', $fatsec, ")\n";
print 'Root directory sectors: ', $rds, "\n";
print 'Total special sectors: ', $rs+$fat*$fatsec+$rds, "\n";
Jegyezd meg a "Total special sectors
" utáni számot és ellenőrizd, hogy a "volume label
" után "SWAP SPACE
" áll-e. Ha nem, akkor indíts DOS-t és futtasd újra a LABEL parancsot. Ha még mindig nem jön össze, kérlek juttasd el hozzám a DOS verziószámod, és megpróbálok segíteni rajtad.
mkdir /mnt
mount -t msdos /dev/winswap /mnt
dd if=/dev/zero of=/mnt/dummy.fil
umount /mnt
A dd parancs majd azt írja ki, hogy "No space left on device"
. Ez pont
az, amit akartunk.
SysVini
t esetén az /etc/inittab
következő sorában van; ha nincs neked ilyen sorod, írd be.
# Runlevel 0 means shut down the system
# 0-ás runlevel jelentése: rendszer leállítása
l0:0:wait:/etc/brc
A leírás további részében feltételezem, hogy a file neve /etc/brc
.
dd if=/dev/winswap bs=512 count=XXX | gzip -9 > /etc/winswap.gz
^^^
és az XXX
helyére írd be azt a bizonyos "Total special sectors"
számot.
/etc/rc
file-ba (vagy valami hasonló
nevűbe, amit az init
meghív) közvetlenül a "swapon -a" sor elé (ha nincs
ilyen sorod, írd be a legelső mount parancs elé).
Ha van /etc/rc.d
könyvtárad, akkor az /etc/rc.d/rc.S
vagy az
/etc/rc.d/rc.boot
nevű file-ba kell írnod.
Ha nálad a swapon az /etc
-ben van, akkor írd át a /sbin/swapon
-t
/etc/swapon
-ra. Ha a /bin
-ben van, akkor /bin/swapon
-ra. Ugyanezt tedd
az mkswap-pal is.
Az XXXXX
helyére a partíció blokkokban mért méretét írd, ahogy azt az
fdisk kiírja.
#
# Swap terület ellenőrzése és inicializálása
#
echo -n 'Swap terület ellenőrzése... '
if [ "`/bin/dd 2>/dev/null if=/dev/winswap bs=1 count=10 skip=4086`" \
= 'SWAP-SPACE' ]; then
echo 'Linux jelzést találtam'
/sbin/swapon /dev/winswap
elif [ "`/bin/dd 2>/dev/null if=/dev/winswap bs=1 count=11 skip=43`" \
= 'SWAP SPACE ' ]; then
echo 'DOS jelzést találtam'
/sbin/mkswap /dev/winswap XXXXX
/sbin/swapon /dev/winswap
else
echo 'Nem találtam jelzést'
echo 'HIBA: nem lesz swap'
fi
/etc/brc
fileba kell tenned (vagy ahogy
nálad ezt hívják -- /etc/rc.d/rc.0
vagy /etc/rc.d/rc.halt
, ha van
/etc/rc.d
nevű könyvtárad.); írd a legutolsó olyan parancs után, aminek
még szüksége lehet a swap meglétére.
#
# Swap használatának leállítása és az eredeti
# DOS/Windows swap terület helyreállítása
#
/sbin/swapoff /dev/winswap
if [ "`/bin/dd 2>/dev/null if=/dev/winswap bs=1 count=10 skip=4086`" \
= 'SWAP-SPACE' ]; then
echo 'DOS/Windows swap terület helyreállítása'
/bin/zcat /etc/winswap.gz > /dev/winswap
else
echo 'HIBA: /dev/winswap jelzése hiányzik, nincs helyreállítás'
fi