FreeBSD
# freebsd-update fetch # freebsd-update install
OSの更新
# freebsd-update upgrade -r 13.1-RELEASE # freebsd-update install -r 13.1-RELEASE
PKGの更新
# pkg-static install -fy pkg # pkg upgrade -y
Gitから取得
git clone --depth 1 https://git.FreeBSD.org/ports.git /usr/ports
最新に更新
git -C /usr/ports pull
インストールCDの準備
インストールCDイメージ
ftp3.jp.freebsd.org/pub/FreeBSD/ISO-IMAGES-i386/5.2.1/5.2.1-RELEASE-i386-miniinst.iso
をダウンロード。新潟大学からだとこのサイトが早いです。
isoイメージをCD writerで焼きます。
焼きあがったCDから起動します。
スライス・パーティションの切り方
FreeBSDの場合物理的なHDDを,まずスライスという単位にきります。 すべてのディスクを1つのスライスにしてしまってよいでしょう。
次にスライスの中にパーティションを切ります。 いろいろ流儀があるでしょうが
/ swap容量を差し引いた残り全部 swap 256MB〜1G
が簡単です。
残りのインストール過程
/usr/src/sys/conf/
最初の一回だけ
# pkg_add -r cvsup-without-gui # cp /usr/share/example/cvsup/ports-supfile /etc # chmod 644 /etc/ports-supfile
/etc/ports-supfileの
*default host=CHANGE_THIS.FreeBSD.org
と書かれた行を
*default host=cvsup.jp.FreeBSD.org
と編集して、cvsup.jp.freebsd.orgからとってくるように設定。
# cvsup -L 2 /etc/ports-supfile # cd /usr/ports/sysutil/portupgrade # make install clean
パーッケージを最新に保つ
# cvsup -L 2 /etc/ports-supfile # portsdb -uU # portupgrade -ark
新規パッケージの導入
# cd /usr/ports # portinstall japanese/kterm
たまにやって欲しいこと
お掃除
# portsclean -LCD
例:
Part Mount Size Newfs
---- ----- ---- -----
da1s1a /mnt 100MB UFS Y
da1s1b swap 1024MB SWAP
da1s1e /mnt/var 1024MB UFS Y
da1s1f /mnt/usr 2048MB UFS Y
da1s1g /mnt/home 4550MB UFS Y # mount /dev/da1s1a /mnt
# mount /dev/da1s1e /mnt/var
# mount /dev/da1s1f /mnt/usr
# mount /dev/da1s1g /mnt/home # dump 0af - / | ( cd /mnt && restore rf -)
# dump 0af - /var | ( cd /mnt/var && restore rf -)
# dump 0af - /usr | ( cd /mnt/usr && restore rf -)
# dump 0af - /home | ( cd /mnt/home && restore rf -) # rm /mnt/restoresymtable
# rm /mnt/var/restoresymtable
# rm /mnt/usr/restoresymtable
# rm /mnt/home/restoresymtable% mkisofs -J -r -input-charset euc-jp -o hoge.iso hoge
# mdconfig -af hoge.iso md0 # mount -t cd9660 /dev/md0 /mnt # mdconfig -du md0
# burncd -s max data hoge.iso fixate
cdrdaoはscsiデバイス用なので,cam transport moduleをkernelに組み込む。
device atapicam
cueシートをtocに変換
% cue2toc hoge.cue > hoge.toc
burn!!!
# cdrdao write --device 1,0,0 --driver generic-mmc --speed 8 hoge.toc
cdparanoia
音楽CDを示すラベルをファイルの先頭に書きます。
CD_DA
後はトラックを書いていきます。
TRACK AUDIO
FILE "hoge01.wav" 00:00:00 04:55:37
CD_DA TRACK AUDIO FILE "CDImage.wav" 00:00:00 04:11:00 TRACK AUDIO FILE "CDImage.wav" 04:11:00 05:05:62 START 00:02:00 TRACK AUDIO FILE "CDImage.wav" 09:16:62 04:48:63 START 00:01:50
CD_DA
TRACK AUDIO
FILE "01 - Egao no Yokan ('Deep'Dream mix.).wav" 0
TRACK AUDIO
FILE "02 - Wonder Girl ('Deep'Club mix.).wav" 0
TRACK AUDIO
FILE "03 - Yureru Koi Otome Iro .wav" 0START 00:01:00例えばこんな風にすると,前のトラックのラスト1秒になったときに,トラックインデクスが現在のトラックに切り替わります。
#cdrdao copy --device 1,0,0 --speed 24
# echo 'xfs_enable="YES"' >> /etc/rc.conf
# portinstall net/tightvnc # portinstall emulator/linux_base-8 # portinstall net/rsync
# portinstall emulators/linux_base-8/ # portinstall x11/linux-XFree86-libs # portinstall x11-fonts/linux-fontconfig # portinstall textproc/linux-expat
linux_enable="YES"
linprocfs /compat/linux/proc linprocfs rw 0 0
proc /proc proc rw 0 0
# mount /cdrom # /compat/linux/bin/sh /cdrom/install -t
% setenv XAUTHORITY $HOME/.Xauthorityとしておくこと
% ./matlab -glnx86
% ./lmstart -glnx86
最初の一回だけ
# pkg_add -r cvsup-without-gui # cp /usr/share/example/cvsup/stable-supfile /etc # chmod 644 /etc/stable-supfile
/etc/stable-supfileの
*default host=CHANGE_THIS.FreeBSD.org
と書かれた行を
*default host=cvsup.jp.FreeBSD.org
のように、また
*default release=cvs tag=RELENG_4
と書かれた行を
*default release=cvs tag=RELENG_5_2
と編集する。
# cvsup -L 2 /etc/stable-supfile
# cd /usr/src # make buildworld
# cd /usr/src # make buildkernel
# cd /usr/src # make installkernel
# cd /usr/src # make installworld
# mergemaster
ライセンス取得
clone-self = on use-syslog = off catalogue = /usr/X11R6/lib/X11/fonts/TTF/ error-file = /var/log/xfs.log default-point-size = 120 default-resolutions = 75,75,100,100
# kbdcontrol -k /dev/kbd1 < /dev/ttyv0 -l jp.106> /dev/null
.Xmodmapに
keycode 228 = backslash underscore
.xinitrcの適当な所に
xmodmap $HOME/.Xmodmap
# portinstall audio/beep
#!/bin/sh /usr/local/bin/beep -p 440 $1
#!/bin/sh /usr/local/bin/beep -p 493.8 $1
#!/bin/sh /usr/local/bin/beep -p 261.6 $1
#!/bin/sh /usr/local/bin/beep -p 293.6 $1
#!/bin/sh /usr/local/bin/beep -p 329.6 $1
#!/bin/sh /usr/local/bin/beep -p 349.2 $1
#!/bin/sh /usr/local/bin/beep -p 392 $1
#!/bin/sh ./F4 100 ./A4 100 ./G4 100 ./C4 200 sleep 1 ./F4 100 ./G4 100 ./A4 100 ./F4 200 sleep 1 ./A4 100 ./F4 100 ./G4 100 ./C4 200 sleep 1 ./C4 100 ./G4 100 ./A4 100 ./F4 200
#!/bin/sh ./F4 50 ./C4 100 ./A4 50 ./F4 200 sleep 1 ./F4 50 ./C4 100 ./A4 50 ./G4 200 sleep 1 ./G4 50 ./C4 100 ./A4 50 ./G4 200 sleep 1 ./G4 50 ./C4 100 ./A4 50 ./F4 200
30 8 * * * root (cd /root/bin/chimes && ./play1)
# kill -HUP `cat /var/run/cron.pid`
Vinumは仮想ディスクを作り出す。
はじめにVolumeというオブジェクトがある。 Volumeは容量制限のない何らかのディスク領域。
Volumeの中にPlexがある。 Plex1つでVolumeのすべての可能なアドレスをカバーしている。 2つ以上のPlexがある場合,ひとつひとつがVolume全体のアドレス空間を張る。 Plexはつまり冗長である。
BSDパーティションをPlexの構成単位にしてもいいが, パーティションの数には限りがある。 だからVinumはひとつのBSDパーテシション(drive)を 複数のディスク(subdisks)に分けることができる。
SubdisksはVinum drive = BSDパーテション上にいくつでも作ることができる。
Plexは任意の数の,任意のVinum Driveに散らばっているSubdisksを含むことができる。 つまり,plexは,そしてvlumeはdriveの物理的な容量に制約されないのだ。
まずこんなファイルを作る
# cat backuphome drive ad2s1c device /dev/ad2s1c drive ad3s1c device /dev/ad3s1c volume backuphome plex org concat sd length 77879478k drive ad2s1c sd length 77879478k drive ad3s1c
意味を説明しよう。
drive ad2s1c device /dev/ad2s1c
この行によってデヴァイス /dev/ad2s1cをad2s1cという名前のVinum driveにする。 次の行も同様。
volume backuphome
この行でbackuphomeという名前のボリュームを作る。 以下backuphomeボリュームの内容を書く。
plex org concat
上で説明したように,volumeはplexからなる。 ここでは単一のplexを用いているから冗長度はない。
org concat
というのは,単純連結の意味。 sd length 77879478k drive ad2s1c 上で書いたように,plexはsubdiskからなる。 ここではdrive ad2s1cに長さ77879478kBのsubdiskをつくって, それをplexに追加している。 次の行も同様。 なお,このときの長さは,一度/dev/ad2s1cをnewfsしてmountしてdfで調べた:P
さて,このコンフィグレーションファイルを使ってボリュームを作る。
# vinum > create -f backuphome > quit
以上。
これで/dev/vinum/backuphomeというでかい領域ができた。 後は通常のディスクのようにnewfsする。
# newfs /dev/vinum/backuphome
で,fstabにでも書いてケロ。
注意。vinumドライバが起動時に実行されるように,
echo 'start_vinum="YES"' >> /etc/rc.conf
しておくこと。
--- if_sk.c.orig Thu Jan 6 17:54:47 2005
+++ if_sk.c Fri Jan 28 12:12:55 2005
@@ -157,6 +157,11 @@
},
{
VENDORID_MARVELL,
+ DEVICEID_MARVELL_88E8053,
+ "Marvell Yukon 88E8053 Gigabit Ethernet"
+ },
+ {
+ VENDORID_MARVELL,
DEVICEID_BELKIN_5005,
"Belkin F5D5005 Gigabit Ethernet"
},
--- if_skreg.h.orig Thu Jan 6 17:54:47 2005
+++ if_skreg.h Fri Jan 28 12:12:45 2005
@@ -65,6 +65,12 @@
#define VENDORID_MARVELL 0x11AB
/*
+ * Marvell Yukon 88E8053 PCI Express Gigabit Ethernet Controller
+ */
+
+#define DEVICEID_MARVELL_88E8053 0x4362
+
+/*
* SK-NET gigabit ethernet device IDs
*/
#define DEVICEID_SK_V1 0x4300
mount_smbfs -E euc-jp-MS:cp932 -I hoge //tacoma@hoge/data /mnt
tunefs -j enable /dev/ada0s1d
pkgdb -L
autocutsel
remote - EUC-JP local - UTF-8だとする。この場合、
rsync -aruvz --iconv=utf-8,euc-jp xxx.xxx.xxx.xxx:/home /backup/home
とする。(local,remote の順番なことに注意)
find ./backup -type d -print0 | xargs -0 chmod 750 find ./backup -type f -print0 | xargs -0 chmod 640
/usr/local/share/locale/ja/LC_MESSAGES