無印pentium debian install memo
TRANSCRIPT
無印PentiumマシンDebian Installの記録
かごしまLinux勉強会-第02回
2014/06/28(Sat)
サンエールかごしま 4F中研修室 3
2014/6/28 1
自己紹介
2014/6/28 2
吉本工業
ETロボコン準優勝 (^ ^)v
Yukiyoshi yoshimoto
geckosjp
• 石川県小松市出身
• 1966年8月生まれ(A型、乙女座)
• 高校卒業後上京⇒福岡⇒鹿児島
• 組み込みエンジニア(自称)
• 1995年Slackwareと出会う。
2013
※イメージ
目標!
2014/6/28 3
• 古い無印PentiumをLinuxで活用!
• Lowスペックマシンに現行Debianを入れる!– 課題:現行ディストリではスペックが低すぎて
インストラーが対応していない!(T T)
• Kernelは3.0系にする!
• X Window Systemは諦める!– 理由:昔、動かしていたけど実用的で無い!
• jfbtermでCUI端末化を目指す!当然、日本語対応!
そんなこと、何の意味があるの?
何故DebianをInstallするのか?
2014/6/28 4
有効活用
そこに山があるから
意 地
無印Pentiumマシンの諸言
2014/6/28 5
2000年頃、中古を鹿児島のアプライドで購入。(確か\19,800-で購入)
DebianをInstallするマシン
2014/6/28 6
• 2000年頃、中古を鹿児島のアプライドで購入。(確か\19,800-で購入)
• 2年位我が家でルーター兼サーバーとして稼働
• 元々搭載されていたHDDは小容量なので10G品に換装済
• Ethernet無しモデルだったので、PCMCIAスロットにEthernetカードを装着
• 持ち運ぶのには重い(3.2kg)
• RAMは増設済で合計32MB搭載
DebianをInstallするマシン
2014/6/28 7
あしたのためのその1
• 現行Debianのインストーラーは多くのリソースを消費する!– 「通常のインストールを行うには、少なくとも 80MB の
RAM と 580MB のハードディスク領域が必要です。」(出展:Debian GNU/Linux インストールガイド)
• 今回のターゲットマシンの搭載RAMは32MB!
2014/6/28 8
インストーラの壁!
★ HDDを外して他のPCにて「debootstrap」を使ってシステム構築!!
あしたのためのその2
• マシンが古いのでHDD容量に制約あり。• 過去に512MB、2GBの壁もあったが、BIOSの制約でターゲットマシンにも8GB制約あり!– 搭載するHDDは10GB!昔、Ontrackってソフトで8GB問題を解決できていたが、もう手元に残っていない。orz
2014/6/28 9
8GBの壁!
★ GRUBを用いたBootシステムの採用!
あしたのためのその3
• 現行のインストーラは「initrd」システムを採用している!• Debian 7.0(wheezy)のkernelパッケージに含まれるinitrdは圧縮状態で約10MB、伸張して約24MB!
• Boot時にはkernelイメージとinitrdイメージをRAM読み込み、更にinitrdをRAMDISK上に展開するので、その分RAMが必要。なので・・・
Unpacking initramfs...Kernel panic - not syncing: Out of memory and no killable processes...
となる!
2014/6/28 10
RAM容量の壁!
★ initrdを使わないkernelをbuildする必要あり!
2014/6/28 11
Kernelのビルド
tar Jxf linux-3.2.57.tar.xz<中略>cd linux-3.2.57make menuconfig<中略>make-kpkg --revision=1.0 --rootcmd=fakeroot kernel-image<中略>
エラーが発生しなければ、このファイルが出来上がる♪
../linux-image-3.2.57_1.0_i386.deb
← ここ超重要!!
Kernelのオプションは超重要です。Initirdを使わなくするオプションは必須ですが、その他、最新のカーネルの標準オプションでは今回のマシンに全然マッチしていない!全部見直しの必要あり!! (トホホ・・・)
Let’s Try!
2014/6/28 12
パーテーションの設定
fdisk /dev/sdc
Command (m for help): p
Disk /dev/sdc: 10.1 GB, 10056130560 bytes64 heads, 32 sectors/track, 9590 cylinders, total 19640880 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x00000000
Device Boot Start End Blocks Id System/dev/sdc1 2048 18876415 9437184 83 Linux/dev/sdc2 18876416 19640879 382232 82 Linux swap / Solaris
Command (m for help):
ここからは既に稼働しているマシンにHDDを接続!
Let’s Try!
2014/6/28 13
rootのFSを作る
mkfs -t ext4 /dev/sdc1mke2fs 1.42.5 (29-Jul-2012)Filesystem label=OS type: LinuxBlock size=4096 (log=2)Fragment size=4096 (log=2)Stride=0 blocks, Stripe width=0 blocks589824 inodes, 2359296 blocks117964 blocks (5.00%) reserved for the super userFirst data block=0Maximum filesystem blocks=241591910472 block groups32768 blocks per group, 32768 fragments per group8192 inodes per groupSuperblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): doneWriting superblocks and filesystem accounting information: done
Swapを作る
mkswap /dev/sdc2Setting up swapspace version 1, size = 382228 KiBno label, UUID=bb1f500a-aa15-41a5-b797-c2c075d125df
mount
mount /dev/sdc1 /mnt
Let’s Try!
2014/6/28 14
システムイメージ展開
debootstrap --arch i386 wheezy /mnt http://ftp2.jp.debian.org/debian/
設定ファイル編集
vi /mnt/etc/inittabvi /mnt/etc/apt/sources.listvi /mnt/etc/securettyvi /mnt/etc/fstabvi /mnt/etc/passwd ← 最初設定し忘れて、bootとはしたけどlogin出来ない状態に…
Kernelイメージのインストール
chroot /mntDpkg -i linux-image-3.2.57_1.0_i386.deb
このkernelはinitrdを使わない野良ビルドしたkernel
Let’s Try!
2014/6/28 15
Grub2のインストールとブートセクターへの書込み
apt-get install grub2
grub-install --boot-directory=/mnt/boot /dev/sdcInstallation finished. No error reported. ← (^ ^)v
再起動♪
HDDをターゲットマシンに装着する
Let’s Try!
2014/6/28 16
本当は起動するまで色々とありましたが、必死だったので何をどうしたか覚えてない… orz
無事GRUB起動!(パチパチ)
Kernelイメージの読み込みとboot!
grub> linux /boot/vmlinuz-3.2.57 root=/dev/hda0 ro console=ttyS0,9600n8rgrub> boot
Let’s Try!
2014/6/28 17
List of all partitions:[ 1.746265] No filesystem could mount root, tried: [ 1.752750] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
うぁぁぁぁぁぁぁ…
Ext4のドライバをモジュールでコンパイルしてた… orz
その他、いろんなことがありました・・・さっさとまとめておけば良かったのに・・・
もう忘れた・・・ orz
そして、ついに!
Let’s Try!
2014/6/28 18
今後の課題
• なんと言ってもネットワークに繋ぎたい!本体にLANポートが内蔵されていない。だ・か・ら・・・
• PCMCIAの活用昔はpcmcia-csを入れるのが定番だったが、今はkernelが面倒見てくれるのだとか・・・一応、オプションを有効にしてビルドしたのだがイマイチうまくいっていないっぽい。
• jfbtermフレームバッファさえ動けば何とかなると、軽く思っているので一番最後。
2014/6/28 19
USBも無いのでファイルの受け渡しが面倒・・・