Memoの最近のブログ記事

バーチャル山中家では、以下のようなソフトウェアをインストールしています。

  • shells/fd
    MS-DOSの頃にお世話になったあのFDです。
    (って、知らない人多いか。)

  • archivers/lha
    これもMS-DOSの頃にお世話になったLHAです。ま、これはなくてもいいかも。
    sambaで共有しているフォルダ内のlzhファイルを直接扱うとかに使うかなぁ。

  • .cshrcの編集
    これは、FreeBSD 5.3/i386 note ベースシステムの設定を参考にしています。プロンプトの設定など、なれちゃうとやめられないかも。

  • テキストエディタ
    viにはどうもなじめなくて、eeを愛用していますが、代わりのエディタを探しています。

  • 2005/03/06
    DOS時代のVZエディタに似た感じのneというエディタを発見。portsにも入ってます。

基本的なことは、FreeBSD ハンドブックの20.4. make world の利用に書かれています。

  • まずはバックアップを取りましょう。
    設定とデータは最低限取りましょう。
    大きなバージョンアップをするときには、それと合わせてハードディスクを交換してしまうことも考えてみてください。
    そうすれば交換前のディスクがバックアップになりますね。
  • /usr/src/UPDATING を読む
  • /etc/make.conf の確認

実際の構築は、できるならシングルモードになってからやっちゃったほうが安全だと思いますが、サービスを提供しながらとなると、そうもいきません。
まずは、コンパイルをしていきましょう。

[root@jiro]~# cd /usr/src  
[root@jiro]/usr/src# make buildworld  
[root@jiro]/usr/src# make buildkernel

これで、コンパイルはできましたので、シングルモードになりましょう。

[root@jiro]/usr/src# shutdown now  
# male installkernel  
# reboot

まずはカーネルをインストールして再起動してみます。
無事起動しましたでしょうか?

[root@jiro]/usr/src# mergemaster -p

ここで、最低限必要なファイルの内容比較を行います。結構追加したユーザーがなくなっちゃったりします。バックアップから再度追加するとか、新しく増えた部分のみを現行のファイルに追加するとか、これはそれぞれの場合によります。ここでもバックアップが必要だということが分かりますね。
マージが出来たら、シングルモードになって、カーネル以外の部分もインストールしてみましょう。

[root@jiro]/usr/src# shutdown now  
# make installworld  
# mergemaster  
# reboot

もちろん、ここで書いた方法はアップデートの内容によっては不要な手順もあります。
失敗することもあるわけで、コンパイル時のメッセージなどもよく確認してください。

CVSUPもインストールできたので、FreeBSD自身のソースを最新化してみましょう。

Windowsと違って、FreeBSDや他のオープンソースOSでは、ソースが公開されています。しかもそのソースをコンパイルすればちゃんと動くというところがすごいですよね。
Windowsもソースを公開するとかしないとか言ってますけど、持ってきてコンパイルできるソースなのかなぁ。

さて、CVSUPを使ってソースを同期するための定義ファイルを作成しましょう。
サンプルは、/usr/src/share/examples/cvsup/stable-supfileにあります。
これを/etc/cvsup/releng53-supfileにコピーして編集しましょう。
おっとその前に、どこのCVSUPサーバが近いか、見ておきましょうね。

[root@jiro]~# fastest_cvsup -c jp  
>>  Querying servers in countries: jp  
--> Connecting to cvsup.jp.freebsd.org [210.224.172.75]...  
    - server replied: OK 17 0 SNAP_16_1g CVSup server ready  
    - time taken: 22.83 ms  
--> Connecting to cvsup2.jp.freebsd.org [202.229.199.30]...  
    - server replied: OK 17 0 SNAP_16_1f CVSup server ready  
    - time taken: 14.83 ms  
--> Connecting to cvsup3.jp.freebsd.org [210.188.224.44]...  
    - server replied: OK 17 0 SNAP_16_1h CVSup server ready  
    - time taken: 14.16 ms  
--> Connecting to cvsup4.jp.freebsd.org [133.1.44.1]...  
    - server replied: OK 17 0 SNAP_16_1f CVSup server ready  
    - time taken: 26.17 ms  
--> Connecting to cvsup5.jp.freebsd.org [210.161.150.4]...  
    - server replied: OK 17 0 SNAP_16_1h CVSup server ready  
    - time taken: 3008.40 ms  
--> Connecting to cvsup6.jp.freebsd.org [133.1.240.15]...  
    - server replied: OK 17 0 SNAP_16_1h CVSup server ready  
    - time taken: 26.36 ms  

>>  Speed Daemons:  
    - 1st: cvsup3.jp.freebsd.org  
    - 2nd: cvsup2.jp.freebsd.org  
    - 3rd: cvsup.jp.freebsd.org

このような結果が表示されましたか?
バーチャル山中家は、cvsup3.jp.freebsd.orgが一番近いようですね。
この結果を受けて、supfileを作りましょう。

[root@jiro]~# cp /usr/src/share/example/cvsup/stable-supfile /etc/cvsup/releng_5_3-supfile  
[root@jiro]~# ee /etc/cvsup/releng_5_3-supfile  
(前略)  
*default host=cvsup3.jp.FreeBSD.org  
*default base=/var/db  
*default prefix=/usr  
(中略)  
*default release=cvs tag=RELENG_5_3  
(中略)  
#*default compress  
(中略)  
src-all  
(後略)

さて、supfileもできましたので、早速ソースを同期してみましょう。

[root@jiro]~# mkdir /var/log/cvsup/releng_5_3  
[root@jiro]~# cvsup -g -L 2 /etc/cvsup/releng_5_3-supfile | tee -a /var/log/cvsup/releng_5_3/yyyymmdd.log

yyyymmddの部分は、yyyyに年を、mmに月を、ddに日を置き換えてください。
そうしておけば、いつの同期のログかが、分かりやすくなります。

参考:http://sakura.take-labo.jp/freebsd/i386-releng53_5.3-RELEASE.html

さて、それではOSやPortsを最新化するためのツールであるCVSUPをインストールしましょう。
さっき入れたportupgradeを使うと、こんな感じになります。

[root@jiro]~# cd /usr/ports  
[root@jiro]/usr/ports# portinstall net/cvsup-without-gui

あと、CVSUPを使うときに利用するディレクトリを作成しておきましょう。

[root@jiro]/usr/ports# mkdir /etc/cvsup  
[root@jiro]/usr/ports# mkdir /var/db/sup  
[root@jiro]/usr/ports# mkdir /var/log/cvsup  
[root@jiro]/usr/ports# mkdir /var/log/cvsup/ports  
[root@jiro]/usr/ports# mkdir /var/log/cvsup/pkg

次に、CVSUPを実行する際に、CVSUPサーバの反応が速いものを探してくれるツールをインストールします。

[root@jiro]/usr/ports# portinstall sysutils/fastest_cvsup

参考:http://sakura.take-labo.jp/freebsd/i386-ports.html

FreeBSDで何かソフトウェアをインストールするときに、「portsから入れる」という場合は、/usr/portsの下に展開している膨大な数のportsコレクションから必要なものを見つけて、そのディレクトリへ行ってmakeしてmake installして・・・という手順を行います。
この手順をスマートにしてくれるのが、このportupgradeです。
なので、portupgradeは、上記のmakeして・・・という手順でインストールします。

[root@jiro]~# mkdir /var/log/ports  
[root@jiro]~# cd /usr/ports/sysutils/portupgrade  
[root@jiro]/usr/ports/sysutils/portupgrade# make | tee -a /var/log/ports/portupgrade.log  
[root@jiro]/usr/ports/sysutils/portupgrade# make install | tee -a /var/log/ports/portupgrade.log  
[root@jiro]/usr/ports/sysutils/portupgrade# make clean | tee -a /var/log/ports/portupgrade.log  
[root@jiro]/usr/ports/sysutils/portupgrade# source ~/.cshrc  
[root@jiro]/usr/ports/sysutils/portupgrade# mkdir /usr/ports/packages  
[root@jiro]/usr/ports/sysutils/portupgrade# mkdir /usr/ports/packages/All

それと、portupgradeのログを自動的にとるように、/usr/local/etc/pkgtools.confを編集しておきましょう。

[root@jiro]~# ee /usr/local/etc/pkgtools.conf

最後のほうに以下のように記述しておきます。

  PORTUPGRADE_ARGS = ENV['PORTUPGRADE'] || \  
       '-v -L /var/log/ports/'

こうしておくと、portupgrade -v -L /var/log/ports/ と毎回入力しなくても、そのように動作してくれます。

あと、セキュリティ的に問題があると指摘してくれるツールを入れておきましょう。

[root@jiro]/usr/ports# portinstall security/portaudit

参考:http://sakura.take-labo.jp/freebsd/i386-ports.html

まずはportsツリーを最新化しておきましょう。

[root@jiro]~# fetch ftp://ftp3.jp.freebsd.org/pub/FreeBSD/ports/ports/ports.tar.gz  
[root@jiro]~# tar -zxvf ports.tar.gz -C /usr/

ここではftp3.freebsd.orgから取得していますが、お近くのサーバから取得してください。

また、この先portsやFreeBSD自身のコンパイルをしていくわけですが、そのコンパイルのための設定もしておきましょう。

[root@jiro]~# ee /etc/make.conf  
CPUTYPE=i686  
CFLAGS= -O -pipe        # コンパイラの最適化オプション  
COPTFLAGS= -O -pipe

CPUTYPEは、お使いのCPUに合わせてくださいね。
また、portsのコンパイルの際はいいのですが、OSのコンパイルの際には外したほうがいいとの情報もあったりします。
まぁ、最適化はしなくても動きます。その辺は色々試してみてください。

参考にしたサイト:http://sakura.take-labo.jp/freebsd/i386-ports.html

ここまでで、FreeBSD 5.3-RELEASEがインストールできました。

Windowsの場合で考えてみましょう。
Windowsをインストールした直後って何をしますか?
最近では、とりあえずブラウザの設定が出来ていてWebが見られるようになれば、Windows Updateをするのではないでしょうか?

実はFreeBSDでも同じ事で、まずはセキュリティ関連のパッチをあてて、FreeBSDを最新の状態にすることが大事だと思います。攻撃されたり、攻撃の道具に使われないためにも、普段からセキュリティ勧告などにアンテナを張るなどして情報収集するようにしましょう。

では、そのセキュリティ関連の対策をするための、道具の準備をしていきましょう。

あとは、画面の指示に従って、インストールを進めていくことになります。
自宅サーバを目指しているインストールの場合には、X Windowsは入れなくても良いでしょう。
しかし、セキュリティ対策のために、OSにパッチを当ててコンパイルしたりするので、ソースは全部入れておきましょうか。

あと、portsコレクションをどうする?って聞かれます。
これは、お好みで。5.3-RELEASE時点のものをとりあえず入れておくのも良いですが、日々激しく更新されているportsですので、後で最新化するときに入れても良いです。
バーチャル山中家では、まずはCD-ROMから入れておいて、CVSupで最新化しています。
packageについては、ここでは入れなくてもよいでしょう。

細かい話は、FreeBSDのマニュアルを読むとかしてくださいね。

さて、バーチャル山中家では、普段の作業はSSH経由でWindowsマシンから行っています。
この方が、画面は広いし、日本語が表示できるし、何かと便利だからです。
もちろん、サーバコンソールからでないと出来ない作業もありますけどね。
なので、SSH経由でログインできるrootになれるユーザーを1つ作っておくことをお勧めします。wheelグループに所属させておけば、suコマンドでrootになれます。

あと、SSH経由で接続する際の準備をしておきましょう。
バーチャル山中家では、TTSSHを利用して接続しています。
(このTTSSHについては、ここでは書きませんので、Google先生に聞いてみるなりしてください。)
TTSSHはSSHのVersion2に対応していないので、FreeBSD 5.3-RELEASEをインストールした直後の状態ではそのまま接続できません。(5.2.1からバージョンアップした直後はまりました)
SSHD(SSHのデーモンさん)の設定を書き換えておきましょう。

[root@jiro]/# cd /etc/ssh  
[root@jiro]/etc/ssh# ee sshd_config  

(前略)  
#Port 22  
Protocol 2,1   ←ここ  
#ListenAddress 0.0.0.0  
(中略)  
# Change to yes to enable built-in password authentication.  
PasswordAuthentication yes   ←ここ  
#PermitEmptyPasswords no  
(後略)

上手くいったら、CDを抜いて再起動です。
無事起動しましたか?
無事起動したら、とりあえず一安心ですね。

次はパーティションを設定します。

+---------------------------------- Message -----------------------------------+  
|Now you need to create BSD partitions inside of the fdisk partition(s)        |  
|just created.  If you have a reasonable amount of disk space (200MB or more)  |  
|and don't have any special requirements, simply use the (A)uto command to     |  
|allocate space automatically.  If you have more specific needs or just don't  |  
|care for the layout chosen by (A)uto, press F1 for more information on        |  
|manual layout.                                                                |  
+---------------------------------------------------------------------q(100%)q-+  
|                                 [  OK  ]                                     |  
+---------------------------[ Press enter or space ]---------------------------+

確保したFreeBSD領域の中に、パーティションを作成しましょうということです。
200MB以上の領域があるなら、AのAUTOでいいよ~と言っていますね。
ま、最初はAUTOを使うのも一つの手です。
AUTOでは

  • /
  • swap
  • /var
  • /tmp
  • /usr

を自動的に作成してくれます。結構小さめなきり方をするようですね。
最近のでっかいディスクでは、/usrばかりが馬鹿でかいような設定になっちゃいます。
ま、それでもよいのですが、バーチャル山中家では、純粋なデータ領域として/dataも作ることにしました。
ここにWebコンテンツを置いたり、sambaでフォルダを共有して、家庭内LAN上からファイルを格納したり参照したりしようかな?という作戦です。
純粋なデータ領域を作っておけば、そこにデータがあるって分かりやすいので、バックアップもしやすいかな?ってことで。

ちなみに、バーチャル山中家では、きりがいいように

  • 1GB を / に
  • 3GB を swap に
  • 2GB を /var に
  • 2GB を /tmp に
  • 8GB を /usr に
  • 残り を /data に

って感じになっています。

Standerdを選択してEnterを押すと、以下のようなメッセージが表示されます。

+----------------------------------- Message -----------------------------------+  
|In the next menu, you will need to set up a DOS-style ("fdisk") partitioning   |  
|scheme for your hard disk.  If you simply wish to devote all disk space        |  
|to FreeBSD (overwriting anything else that might be on the disk(s) selected)   |  
|then use the (A)ll command to select the default partitioning scheme followed  |  
|by a (Q)uit.  If you wish to allocate only free space to FreeBSD, move to a    |  
|partition marked "unused" and use the (C)reate command.                        |  
+-----------------------------------------------------------------------(100%)--+  
|                                 [  OK  ]                                      |  
+---------------------------[ Press enter or space ]----------------------------+

要は、

この次のメニューで、DOSスタイルのFDISKでハードディスクにパーティションを定義しますよ。
ハードディスクを単純に全部FreeBSD用にするなら(そのディスクの全部を上書きしちゃってもいいなら)Aを押してQを押せばいいよ。
ハードディスクの空いている領域をFreeBSD用に使うなら、unusedって書いてあるところでCコマンドを使ってね。

ということのようです。

最近の人に''DOSスタイルのFDISK''って言っても、通じないような気もしますが・・・

バーチャル山中家では、A押してQのパターンで、いつもやっています。
で、わくわくしながらEnterを押すと、

+----------------------------- Message -----------------------------+  
|WARNING:  A geometry of 319120/16/63 for ad0 is incorrect.  Using  |  
|a more likely geometry.  If this geometry is incorrect or you      |  
|are unsure as to whether or not it's correct, please consult       |  
|the Hardware Guide in the Documentation submenu or use the         |  
|(G)eometry command to change it now.                               |  
|                                                                   |  
|Remember: you need to enter whatever your BIOS thinks the          |  
|geometry is!  For IDE, it's what you were told in the BIOS         |  
|setup. For SCSI, it's the translation mode your controller is      |  
|using.  Do NOT use a ``physical geometry''.                        |  
+-----------------------------------------------------------(100%)--+  
|                           [  OK  ]                                |  
+---------------------[ Press enter or space ]----------------------+

なーんて表示されちゃいました。

最近の大容量のハードディスクでは、geometryというC/H/Sの値が変になっちゃってる(っていうか想定されている値を超えちゃう)ので、この警告が出るようです。
319,120セクタが16シリンダで63ヘッドってことは、321,672,960セクタですね。
1クラスタ512バイトだったと思うので、2で割ると160,836,480KB、さらに1024で割ると157,066.875MB、さらに1024で割ると153.3856201GB・・・。今回つけたのは160GBなので、まぁあっているようですね。
気にせず進みました(ぉぃぉぃ)

すると、以下のような画面になります。これがFDISKですね。

Disk name:      ad0                                    FDISK Partition Editor  
DISK Geometry:  20023 cyls/255 heads/63 sectors = 321669495 sectors (157065MB)  

Offset       Size(ST)        End     Name  PType       Desc  Subtype    Flags  

         0         63         62        -     12     unused        0  
        63  321669432  321669494    ad0s1      8    freebsd      165  
 321669495       3465  321672959        -     12     unused        0  






The following commands are supported (in upper or lower case):  

A = Use Entire Disk   G = set Drive Geometry   C = Create Slice   F = `DD' mode  
D = Delete Slice      Z = Toggle Size Units    S = Set Bootable   | = Wizard m.  
T = Change Type       U = Undo All Changes     W = Write Changes  


Use F1 or ? to get more help, arrow keys to select.

さっき出たgeometryがどうのこうのという値と表示されている値が違うみたいですね。
自分で直したんだっけ?覚えてないなー。
直す場合はGを押してください。
付いているハードディスクの容量と概ね合っているようなら、Aで「全部!」を指定して、Qで確定しちゃいましょう。すると、

+----------------- Install Boot Manager for drive ad0? ------------------+  
| FreeBSD comes with a boot selector that allows you to easily           |  
| select between FreeBSD and any other operating systems on your machine |  
| at boot time.  If you have more than one drive and want to boot        |  
| from the second one, the boot selector will also make it possible      |  
| to do so (limitations in the PC BIOS usually prevent this otherwise).  |  
| If you do not want a boot selector, or wish to replace an existing     |  
| one, select "standard".  If you would prefer your Master Boot          |  
| Record to remain untouched then select "None".                         |  
|                                                                        |  
|   NOTE:  PC-DOS users will almost certainly re-+ire "None"!            |  
| +--------------------------------------------------------------------+ |  
| |         BootMgr   Install the FreeBSD Boot Manager                 | |  
| |         Standard  Install a standard MBR (no boot manager)         | |  
| |         None      Leave the Master Boot Record untouched           | |  
| +--------------------------------------------------------------------+ |  
+------------------------------------------------------------------------+  
|                         [  OK  ]       Cancel                          |  
+-----------------[ Press F1 to read about drive setup ]-----------------+

ブートマネージャを入れますか?と聞いてきます。
そのハードディスクにFreeBSDのみ入れていて、他にOSを入れないのであればStandardで良いでしょう。そうでない場合はBootMgrを選択すると、起動時にどのOSを起動するか選べるようになります。

このアーカイブについて

このページには、過去に書かれたブログ記事のうちMemoカテゴリに属しているものが含まれています。

前のカテゴリはMailです。

次のカテゴリはSambaです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。