FreeBSD



FreeBSD Update

パッチ適用

# freebsd-update fetch
# freebsd-update install

バージョンアップ

OSの更新

# freebsd-update upgrade -r 14.0-RELEASE
# freebsd-update install -r 14.0-RELEASE

PKGの更新

# pkg-static install -fy pkg
# pkg upgrade -y

Portの管理

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

HDDをまるごとコピー

  1. コピー先の HDD を接続して、オリジナルの HDD から起動します。
  2. root でログインして /stand/sysinstall を実行します。
  3. Configure -> Fdisk の画面からコピー先の HDD のスライスを作成します。ブートマネージャもインストールしておきます。
  4. Configure -> Label の画面から、オリジナルのHDDと同じようにパーティションを作成します。newfs もここで行っておくとよいです。
       例:
          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
  5. /mnt 以下に新たに作成したパーティションをマウントします。
        # mount /dev/da1s1a /mnt
        # mount /dev/da1s1e /mnt/var
        # mount /dev/da1s1f /mnt/usr
        # mount /dev/da1s1g /mnt/home
  6. それぞれのパーティションをコピーします。
        # 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 -)
  7. restoresymtable を削除します。
        # rm /mnt/restoresymtable
        # rm /mnt/var/restoresymtable
        # rm /mnt/usr/restoresymtable
        # rm /mnt/home/restoresymtable
  8. コピー先の HDD から起動した際にブートデバイス名が変わるのであれば /mnt/etc/fstab も書きかえておきます。この場合、デバイスファイルも /mnt/dev 上で忘れずに作成しておきます。
  9. オリジナルの HDD を切り離して、コピー先の HDD から起動することを確認します。

データCD

sysutils/cdrtools-cjk
日本語ファイルに対応したCD作成ツール
  1. Joliet拡張とRock Ridge拡張なisoイメージを作る
    % mkisofs -J -r -input-charset euc-jp -o hoge.iso hoge
  2. できたイメージを確認
    # mdconfig -af hoge.iso 
    md0
    # mount -t cd9660 /dev/md0 /mnt
    # mdconfig -du md0
  3. Burn!
    # burncd -s max data hoge.iso fixate

音楽CD

sysutils/cdrdao
CDをdisc at onceで焼く.

一度だけ必要な手順

cdrdaoはscsiデバイス用なので,cam transport moduleをkernelに組み込む。

device atapicam

CDを作るたびに必要な手順

cueシートをtocに変換

% cue2toc hoge.cue > hoge.toc

burn!!!

# cdrdao write --device 1,0,0 --driver generic-mmc --speed 8 hoge.toc

TOCファイルの作り方

音楽CDを示すラベルをファイルの先頭に書きます。

CD_DA

後はトラックを書いていきます。

CDのコピー

#cdrdao copy --device 1,0,0 --speed 24

xfsの起動スクリプト発見

# echo 'xfs_enable="YES"' >> /etc/rc.conf

その他のports(MATLABへの道)

# portinstall net/tightvnc
# portinstall emulator/linux_base-8
# portinstall net/rsync

Matlabインストール

  1. xorgが入っているのを前提として,必要なLinuxバイナリをインストール
    # portinstall emulators/linux_base-8/
    # portinstall x11/linux-XFree86-libs
    # portinstall x11-fonts/linux-fontconfig
    # portinstall textproc/linux-expat
  2. /etc/rc.confに以下を追加
    linux_enable="YES"
  3. /etc/fstabに以下を追加
    linprocfs     /compat/linux/proc     linprocfs     rw     0     0
  4. /compat/linux/etc/fstabを作成
    proc          /proc                  proc          rw     0     0
  5. 再起動もしくは,自分でmountとか/etc/netstart
  6. CD-ROMからインストール
    # mount /cdrom
    # /compat/linux/bin/sh /cdrom/install -t
    • GUIインストールしたければ,あらかじめ一般ユーザで
      % setenv XAUTHORITY $HOME/.Xauthority
      としておくこと
  7. matlabの起動
    % ./matlab -glnx86
  8. licenseサーバも同じく起動できる
    % ./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
  1. ユーザーランドの再構築
    # cd /usr/src
    # make buildworld
  2. カーネルの再構築
    # cd /usr/src
    # make buildkernel
  3. カーネルのインストール
    # cd /usr/src
    # make installkernel
  4. ユーザーランドのインストール
    # cd /usr/src
    # make installworld
  5. 設定ファイルの更新
    # mergemaster

インテル製コンパイラ

ライセンス取得

Japanese TeX

/usr/X11R6/lib/X11/fs/config

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

PukiWiki運営のために必要なパッケージ

USB Keyboardを使えるようにする

# kbdcontrol -k /dev/kbd1 < /dev/ttyv0 -l jp.106> /dev/null

Xでアンダーバーが効かない

.Xmodmapに

keycode 228 = backslash underscore

.xinitrcの適当な所に

xmodmap $HOME/.Xmodmap

決まった時間にチャイムを鳴らす

Vinum

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

しておくこと。

Marvell Yukon 88E8053を使う

--- 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

Windowsの共有フォルダをマウント

mount_smbfs -E euc-jp-MS:cp932 -I hoge //tacoma@hoge/data /mnt

MatrixRaid

Soft Update Journalingを有効にする

tunefs -j enable /dev/ada0s1d

パッケージ依存関係再構築

pkgdb -L

GtkクリップボードとXクリップボードの同期

 autocutsel

Rsync

とする。(local,remote の順番なことに注意)

ファイルだけディレクトリだけパーミッション変更

find ./backup -type d -print0 | xargs -0 chmod 750
find ./backup -type f -print0 | xargs -0 chmod 640

minidlna

certbotでLet's Encrypt

その他


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS