Solarisのパーティションを壊さないswap自動検出
パーティションIDで判別するのではなく、実際にパーティションを読むので、Solarisのパーティションをswapと間違えない。LVMに対応する必要がない&$devdirにデバイスノードが作成してあるなら、最初のforループは不要。
#!/bin/sh detect_swap() { devdir="/dev" for dev in /sys/block/* ;do line=`cat $dev/dev` major=`echo $line | cut -d ":" -f 1` minor=`echo $line | cut -d ":" -f 2` mknod $devdir/`basename $dev` b $major $minor 2>/dev/null done for dev in /sys/block/* ;do node=$devdir/`basename $dev` if [ "`dd if=$node bs=1 count=10 skip=4086 2>/dev/null`" = "SWAPSPACE2" ];then echo $node fi done } detect_swap