ブラウザの JavaScript がオフ(ブロックまたは許可しない)に設定されているため、このページは正常に機能しません。
disklessfun’s Wiki*
[
ホーム
]
一覧
最終更新
バックアップ
ヘルプ
Top
>
minimum-ubuntu
>
複製
?
ms
minimum-ubuntu をテンプレートにして作成
これらのキーワードがハイライトされています:
開始行:
TITLE:Minimum Ubuntu (ミニマムUbuntu:レスキュー機能を持ち、限界までサイズを絞ったUbuntu Linuxの派生)
&size(16){(2012-7-14)Hi.Yamamorという方がMinimum Ubuntuの12.04版を作成されています。};
[[%%%http://www.geocities.jp/bay3897/linux/min-ubuntu.html%%%:http://www.geocities.jp/bay3897/linux/min-ubuntu.html]]
----
&size(16){&color(Red){(2011-5-8)まだUbuntu 11.04をベースとした作成については確認していません。対応もまだ未定です。ただしUbuntu 10.04をベースに作成したMinimum Ubuntuで問題なく最新の11.04をメンテナンスできます。};};
&size(16){&color(Red){(2010-10-30)Ver.0.9.013はUbuntu 10.10に対応していません。};};
RIGHT:初出 2009-01-18
RIGHT:最終更新 2012-10-29
LEFT:
Minimum Ubuntuのバイナリをダウンロードできるようにされたサイトがあります。WinMac氏のサイトです。
[[''%%%レスキュー用LinuxベースライブCDのメモ Vol.2%%%'':http://winmac.blog33.fc2.com/blog-entry-119.html]]
----
&color(Blue){(2012-10-29)Ubuntu 10.04 LTSのアップデートに対応したUbuntu 10.04 LTS専用バージョン:0.9.014をリリースしました。};
&color(Blue){(2010-5-18)ちょっと更新しました(0.9.013)。(2010-05-16)[[&color(Blue){%%%こちらのユーティリティ%%%};>grub2_and_grub1#additional_work]]を含んだバージョン(0.9.011)をリリースしました。(2010-05-04)Ubuntu 10.04に対応した新バージョン
''Minimum Ubuntuの特徴はカーネルとinitramfsだけでOSが動くこと''です。カーネル2.6でinitramfs形式に変更されてからこういったことを実現しているのは''Minimum Ubuntu''だけではないでしょうか。この特徴によって事実上あらゆるブート環境で使用が可能と
#br
[[&ref(minimum-ubuntu_1_s.png);:http://wikiwiki.jp/disklessfun/?plugin=attach&pcmd=open&file=minimum-ubuntu_1_b.png&refer=minimum-ubuntu]]
主にバックアップ・レスキュー用途を想定しています。その為grubはgrub1(grub-legacy,grub 0.97)とgrub2の両方をインストールしてあります。
&color(Blue){[[%%%&color(Blue){こちらのページ};%%%>grub2_and_grub1]]にはgrub2,grub1のレスキュー法などが書いてあります。};
#br
私自身は主にPXEブートで様々なユーティリティ用途(パーティションの編集, MBMのインストール, grub1,grub2のセットアップ, PBRの操作)、CDブートで仮想環境のメンテナンス・OSのレストア・Minimum Ubuntuの開発等に使用しています。[[リカバリDVDのOS>#recov
#br
僅か28Mバイト余りの極少サイズながら、ネットワーク越しのバックアップ・レストア,各種ブートローダのインストール・修復、パーティションテーブルの修復、NTFS読み書き等々、ローレベルな機能を充実させたレスキュー用Linuxです。
#br
バイナリ配布ではなくて、作成キットの配布です。このキットはUbuntu系(Ubuntu,Xubuntu,KubuntuやUbnutu Server等)がインストールされた環境上で使用できます。Ubuntu系Linuxが親環境となるわけです。2010-05-04現在、最新のVer.0.9.010が対応している親環境
#br
&color(Blue){ページ最下部にユーザの方の投稿がありますが、今のところ''親環境としては''32bitPCしか対象にしていないのでamd64環境を親環境として使用すると細々としたエラーが発生すると思います。対応は簡単だろうと思いますが今日(2010-5-4)時点ではま
#br
USBメモリやSDカード等のストレージが安くなった今、こんなに小容量なLinuxが特に必要なわけではありません。しかし自作[[OneCDルータ>onecddebian]]とかを時々作成したりする私としては日頃使っているLinuxがいかに無駄な部分が多いかを感じていましたので、
#br
-技術的な特徴
--ブート時にchrootしません。イニシャルラムディスク(本当はラムディスクではなくてinitramfs)上でinitデーモンを動かします。通常のルートとして見ると極小サイズですが、イニシャルラムディスクとしては超リッチだと見ることができます。
---キット同様に特殊なイニシャルラムディスクを作成する場合に、キット中のcopy-execfile-to-newroot.shはかなり役に立つと思います。是非利用(流用)してみて下さい。
--chrootしないのでvmlinuzとinitrd.img、ブートする前の段階ではこの2ファイルだけが構成ファイルです。しかもブート時にカーネルコマンドライン引数は全く必要ありません。構成が簡単なのでUSBメモリやCD、CF・SDカード等、フロッピー(は容量不足)以外のあ
--もちろんこのサイズですからXは含んでいません。そしてjfbtermも日本語入力システムも含まれていません。しかしネットワークが使え、sshdが動いているので、リモート接続すれば日本語名のファイルも問題なく扱えます。
#br
-出来ることの例
--[[%%%NTFSパーティションのPBR修復%%%>#fixpbr]]
--[[%%%パーティションテーブル修復(条件に恵まれれば)%%%>#restore-partiton-table]]
--[[%%%NTFSパーティションのネットワーク越しのバックアップ・レストア%%%>ntfsbkup]]
--[[%%%各種OSパーティションのイメージ形式によるバックアップ・レストア%%%>ntfsbkup]]
--[[%%%NTFS,FAT32,FAT16パーティションからの日本語名ファイル抽出、バックアップ%%%>#ntfs-fat-mount]]
--[[%%%Linuxの(イメージ形式ではない)バックアップ・レストア%%%>linuxbkup]]
--[[%%%ext3,FAT32,FAT16のフォーマット%%%>#ext3-fat-format]]
--[[%%%ハードディスクの引越し%%%>hduse#movehdd]]
--[[%%%NFSマウント%%%>#nfs-mount]]
--[[%%%CIFSマウント(Windowsファイルサーバ、Sambaサーバへの接続)%%%>#cifs-mount]]
--[[%%%パーティションの確保・変更%%%>#fdisk]]
--[[%%%各種ブートローダ(MBM,grub,syslinux)のインストール・設定変更%%%>#loader-install]]
--[[%%%デフォルトMBRイメージのインストール%%%>#install-mbr]]
--(上記を実行するための条件として)sshdの稼動
--rsync
--ftp送受信
--[[%%%NTシグニチャのクリア%%%>#clear-ntsig]]
#br
-その他の説明(簡易マニュアル的)
--[[%%%キットの使い方%%%>#how-to-use]]
---[[%%%作成手順%%%>#how-to-create]]
---[[%%%デフォルトユーザ名、パスワード等%%%>#user]]
---[[%%%ネットワークの設定%%%>#network-config]]
---[[%%%キーボードの設定%%%>#keyboard]]
---[[%%%必ず/mntにマウントして下さい(grub2の制限回避措置)%%%>#grub2-ristriction]]
---[[%%%grub1(grub 0.97)について%%%>#grub1]]
---[[%%%mountallコマンドについて%%%>#mountall]]
---[[%%%/mntへの自動マウント機能%%%>#automount_on_mnt]]
---[[%%%その他の注意%%%>#other-cautions]]
--[[%%%いろいろなブート方法%%%>#other-methods]]
---[[%%%ネットワークブート(PXEブート)の設定%%%>#networkboot]]
---[[%%%通常のrootファイルシステムとしての使用法%%%>#root-filesystem]]
---[[%%%リカバリーDVDのOSとしての使用%%%>#recovery-os]]
--[[%%%カストマイズ(およびその保存)%%%>#customize]]
--[[%%%以前のバージョンのUbuntuでの使用可否%%%>#former-version]]
--[[%%%バグ%%%>#bugs]]
--[[%%%その他%%%>#other]]
---[[%%%バージョンについて%%%>#about-version]]
---[[%%%ライセンスについて%%%>#about-license]]
#br
ダウンロード &ref(create-minimumubuntu-kit-0.9.014.tar.gz,nolink); 2012-10-29更新 最新にアップデート済みのUbuntu 10.04 LTS専用
#br
ダウンロード &ref(create-minimumubuntu-kit-0.9.013.tar.gz,nolink); 2010-05-18更新 Ubuntu 9.10系専用%%以降専用、もちろんUbuntu 10.04に対応%%
#br
ダウンロード &ref(create-minimumubuntu-kit-0.9.007.tar.gz,nolink); 2009-07-19更新 Ubuntu 9.04系以前専用
0.9.004からは機能に関する更新をおこなっています。
0.9.006からはUbuntu 8.04,8.10,9.04系に対応しています。従来は8.10系のみ。
#br
&size(11){%%(2009-4-6記)しばらく更新していないのですが、予定では006ではscreen,testdisk,eject各コマンドを追加するつもりです。007では何処かにバージョン表示を追加したいです。またルート以外のデバイスを起動時に自動マウントするオプションを追加す
#br
&aname(how-to-use);
* キットの使い方 [#w84a8a16]
&aname(how-to-create);
** 作成手順 [#f640fa7a]
カーネルは親環境で現在使われているカーネルをそのまま使います。
イニシャルラムディスクは現在使われているものを元にして大幅に改変したものを作成します。
まず解凍したディレクトリに入り、
# ./create-minimumubuntu-initrd_contents.sh
足りないパッケージがあれば途中でそのインストールが親環境に対しておこなわれます。ただしもしICH?RのRAID0デバイスを扱う予定がある場合は事前に手動でdmraidを親環境にインストールしておいて下さい。
同じ場所のworkディレクトリ内に新たなイニシャルラムディスクの中身が作成されます。
&color(Blue){0.9.008以降ではこの処理中に一部(今のところmountallだけ)コマンドのリコンパイル作業が追加された為、少し処理時間が延びました。};
"Done"が画面に出力されれば問題なく作成されたことになります。
ここで場合によっては適宜独自のカスタマイズをおこなって下さい。
&color(Red){※0.9.005まで含んでいたufwは削除しました。};代わりにiptablesを直接叩いています。
#br
次に
# ./create-minimumubuntu-usbboot-img.sh
で、28Mバイトの大きさのusb-minimumubuntu.imgというファイル名のイメージファイルが作成されます。
これを
# dd if=usb-minimumubuntu.img of=/dev/sdb
みたいな作業でUSBメモリに書き込めばUSBブート版の完成です。この作業は最も、そして圧倒的に危険な作業なので十分注意しておこなって下さい。(作業前にfdisk -l /dev/sd?を何度もおこなって十二分に対象のディスクを間違っていないか確認した方がいいでしょ
ここで作成されるイメージファイルはパーティションテーブルを使わない形式です。この形式が嫌いな人は適宜自分で変更して下さい。またこのイメージでブートすれば、そのOS上でパーティションテーブルを使用する方法へと変更できます。
&aname(user);
** デフォルトユーザ名、パスワード [#s7e2dacd]
rootとowner(id=1000)がいます。初期パスワードはどちらもpasswordです。
しかし常にrootで作業することを前提とした内容になっていますのでownerは使用しないで下さい。デフォルトではリモートからいきなりrootでログインできるようになっています。
一度もブートさせない間にパスワードを変更したい場合は、親環境で同じユーザのパスワードを変更してから/etc/shadowの該当行をcontentfiles.tarの中のshadowにコピペして下さい。
カーネル引数にsingleを指定した場合はログインプロンプトは出ません。
#br
↑(2010-2-10追記)パスワード入力は個人的なレスキュー用途で使用する場合には不要だと思います。しかしsshdがデフォルトで起動しているので、建前上?、このようにしているわけです。それに自分以外の人がいる場所で使用するなら、建前でなく本当にパスワード
[[%%http://blog-imgs-37-origin.fc2.com/w/i/n/winmac/minimum-ubuntu-diff.txt%%:http://blog-imgs-37-origin.fc2.com/w/i/n/winmac/minimum-ubuntu-diff.txt]]
&aname(network-config);
** ネットワークの設定 [#l0468006]
デフォルトではdhcpになっています。/etc/networkにinterfaces.fixedaddress.sampleという固定アドレス用のサンプルファイルが置いてありますので、固定アドレスにしたい場合はそれを参考にして/etc/network/interfacesを編集してから(vi(vim.tiny)が入ってい
#br
デフォルトではファイヤーウォール(iptables)が稼動しています。外からはsshととpingとDHCPだけ許可しています。レスキュー用Linuxであれば必ずしもファイヤーウォールを稼動させる必要はないと思いますが、sshサーバが稼動していることと、私としては簡易ル
&aname(keyboard);
** キーボードの設定 [#nb808f93]
キーボードの設定機能は省いてあります。親環境の設定が受け継がれます。
&aname(grub2-ristriction);
** 必ず/mntにマウントして下さい(grub2の制限回避措置) [#nb372ad4]
&color(Red){以下の説明はは0.9.008以降のみ該当};
標準状態でルート直下に、
boot -> /mnt/boot
とのシンボリックリンクを作成してあります。
grub2のレスキュー・復旧には[[%%%''この知識''%%%>grub2_and_grub1#grub2_rescue]]が必須です。そこの内容を理解して頂けたなら、こちらもすぐに理解頂けると思います。つまり、''マウントポイントとして/mntを使うことを前提としたダミーディレクトリ''を標
このようなことが可能なのは/bootを自OSの起動に使用しないMinimum Ubuntuならではです。
grub2の復旧やレスキューや再セットアップをおこなうパーティションは''必ず/mntにマウントして下さい''。
(2010-5-18追記)/bootが別パーティションになっている環境のgrub2を再セットアップ(修復やレストア)する場合は、標準の/bootシンボリックリンクを削除して代わりに、
boot -> /mnt
とのシンボリックリンクを作成して下さい。これは現在のgrub-setupの実装上の問題を回避する方法です。これでgrub-setupは正常におこなえるのですが、このような環境用のgrub.cfgファイルをgrub-mkconfigコマンドで作成することは今のところできません。対応
ただし現在のファイルを少しだけ、直に修正すれば、使いのものになるgrub.cfgファイルを生成できます。
bootが別パーティションになっている環境用のgrub.cfgファイルを生成する為にはgrub-mkconfigコマンド内の適切な場所に、以下の例のように、4つの変数とその値を書き込んでやればいいんです。
GRUB_DEVICE=/dev/sda5
GRUB_DEVICE_UUID=afba4670-d34d-430c-88a8-e710347b484a
GRUB_DEVICE_BOOT=/dev/sda6
GRUB_DEVICE_BOOT_UUID=41088a17-a69d-4cb2-8206-426cfe65af91
これだけ設定してやれば、ちゃんと使えるgrub.cfgファイルが生成できます。ここまでで気づいたと思いますが、/bootが別パーティションの場合、grub.cfgファイルを生成する為には/用と/boot用、それぞれのデバイス名とUUIDを指定する必要があるわけです。これ
&aname(grub1);
** grub1(grub 0.97)について [#c2760dc1]
&color(Red){以下の説明はは0.9.008以降のみ該当};
Ubuntu 9.10以降に含まれないgrub1(grub 0.97)は、Ubuntu 9.04のミラーサーバからdebパッケージをダウンロードしてインストールしています。
grub2のファイル群と名前が重ならないようにファイル名やディレクトリ名やヘルパースクリプト中の''"grub"を"grub1"に変更''しています。
例)
(grub1の)grub → grub1 ←''使用頻度が多いと思うので特に注意して下さい。''
(grub1の)grub-install → grub1-install
&aname(mountall);
** mountallコマンドについて [#rfce9a9e]
&color(Red){以下の説明はは0.9.008以降のみ該当};
リコンパイル時に使用されるpatches/mountall-1.0_enable-rootfsroot.patchと適用される個所直後のソースをご覧頂くと一目瞭然ですが、残念ながら修正前は絶対にrootfsをルートファイルシステムに出来ない仕様となっています。
何でまたわざわざNULLにするんだよ?とボヤきたくなります。
&aname(automount_on_mnt);
** /mntへの自動マウント機能 [#c3585e07]
&color(Red){以下の説明はは0.9.008以降のみ該当};
カーネル引数に/mnt=${device}=${type}形式で記述しておくとfstabに
${device} /mnt ${type} defaults 0 0形式で追記されて、
ブート時に自動でマウントされるようになりました。
リカバリDVDのOSとして使う場合等で便利です。
例)
/mnt=/dev/scd0=udf ←''リカバリDVDのOSとして使用する場合''
/mnt=/dev/sda1=ext3
&aname(other-cautions);
** その他の注意 [#u0605c3b]
デフォルトでは/直下にブート初期に使用したinitが残ったままになっています。
起動中は再実行してはいけないものなので、本来ならばrc.localとかで削除するかmoveすべきなのですが、本キットはLinuxの勉強に役立てて欲しいという意図もあるので、目立つ場所(/直下)にわざと残してあります。
#br
このキットで作成したイニシャルラムディスクでbootする為にはもちろんそれなりのメモリ容量が必要となります。現状では起動するために最低80Mバイトのメモリが必要です。[[%%%通常のrootファイルシステム%%%>#root-filesystem]]として使用した場合にはもちろ
#br
親環境の最新カーネルを決めうちで使用しますので、親環境のカーネルを更新した際は必ず再起動してからキットを使用して下さい。
#br
Minimum Ubuntuは通常のLinuxではつきもののカーネル引数でのルートデバイスの指定(root=??)が完全に不要です。しかし逆に、ルートデバイスの指定がなされた際にそれを無視するようには作っていませんので、ルートデバイスの指定は絶対にしないで下さい。同
&aname(other-methods);
** いろいろなブート方法 [#q08d06f8]
キットの中にmenu.lst.sampleというファイル名でgrub用の設定ファイルの雛型があります。
何しろブート時にカーネルコマンドライン引数が必要ないので、気軽にisolinuxやgrubを使ってCDからブートさせたり、PXEブートさせて下さい。コンパクトなので[[%%%リカバリDVD%%%>recv-dvd]]のOSとしても適しています。
#br
通常カーネルコマンドライン引数は必要ありませんが、もちろん引数にsingle※を与えればシングルユーザモードで起動します。もちろん通常のランレベルでの使用時にtelinit 1すればシングルユーザモードに移行します。
※キット付属のsyslinux.cfgを使用した場合はbootプロンプトで「vmlinuz single」もしくは「linux single」と入力することになります。
&aname(networkboot);
** ネットワークブート(PXEブート)の設定 [#m8fe5ddd]
Linuxをネットワーク母艦とするならpxelinux.0を使うべきでしょう。pxelinux.0はできる限り最新のものを使用して下さい。場合によりけりではありますが、pxelinux.0に関しては''”ディストリビューション付属のものを最新に更新するだけでいい”と思わない方が
設定の一例を簡単に示します。
-atftpd,syslinux,dhcp3-serverパッケージをインストールする
-/tftpboot/common/にvmlinuz,initrd.imgを置く。(commonディレクトリは作成して下さい。またtftpのデフォルト・ルートディレクトリが/var/lib/tftpbootなどの場合もあります。適宜読み替えたり、inetd.confをカスタマイズする等の作業を加えて下さい。)
-/lib/syslinux/pxelinux.0を/tftpboot/にコピーする
-dhcpd.confに「filename "pxelinux.0"」を記述する(1ネットワークの中,グローバルな場所,いずれでもいい)
-/tftpboot/pxelinux.cfg/にdefaultというファイル名で以下の内容のファイルを設置する
SAY .
SAY .
SAY 1) Minimum Ubuntu
SAY 2) memtest86
SAY .
SAY h) Boot from first Harddisk (0x80)
SAY .
SAY When no key is pressed for 10 sec, or when you hit Enter, "h" will be run...
default h
timeout 100
prompt 1
label h
localboot 0x80
label 1
kernel common/vmlinuz
append initrd=common/initrd.img quiet
label 2
kernel common/memdisk
append initrd=common/memtest.bin
上のような内容にしなくても、実際にはキット内のsyslinux.cfgをそのままdefaultというファイル名に変更するだけでも使用することが出来ます。
もっと体裁を良くしたければ、[[%%%このページ%%%>disklessfc#pxelinux-config]]のようにvesamenu.c32を追加使用すればいいでしょう。メニュー画面の背景に画像を使う必要を感じなければvesamenu.c32ではなくmenu.c32を使うことをお薦めします。
&aname(root-filesystem);
** 通常のrootファイルシステムとしての使用法 [#k66979ef]
本キットで作成したイニシャルラムディスク(の中身)をイニシャルラムディスクとしてではなく、通常のrootファイルシステムとして使用することもできます。その場合のイニシャルラムディスクは標準のイニシャルラムディスクを用います。ブート時の引数は普通の
この方法を用いるとメモリ容量が非常に小さなPCでも使用できます。この方法に関するTipsですが、ルータ用途等に使用している場合、リモートからシステムを一気に更新したい場合があると思いますが、この方法を用いる場合にはrootファイルシステム用のパーティ
&aname(recovery-os);
** リカバリーDVDのOSとしての使用 [#n3320799]
Minimum Ubuntuはリカバリー・レストア用DVDのOSとしても最適です。超コンパクトなのでDVDの容量を最大限バックアップ用に利用できますし、オールオンメモリーで動作しますので稼動中に''DVDの差し替え''も可能です。デフォルトでリモート操作が可能なことも
#br
どのようにしてリカバリーDVDのOSとして使用するのか、具体的に説明します。
例としてバックアップファイル等を以下のように配置します。
ワークdirectory/----DELLBACKUP/
|
|--dell-sda2-20090319.img.bz2
|--fdisk-dell-20090319.txt
|--md5sum-dell-sda2-20090319.txt
|--isolinux/
|
|--vmlinuz
|--initrd.img
DELLBACKUP直下のバックアップファイル群の説明は省略します。
isolinux直下のvmlinuzとinitrd.imgはMinimum Ubuntuを構成する全ファイルです。
このように配置した状態で、ワークdirectory直下にcdし、
$ mk-recovery-dvd-iso.sh DELLBACKUP
とタイプするとDELLBACKUP.isoというisoイメージファイルが出来上がります。
これを[[%%%このように%%%>utlshell#growisofs]]焼けばリカバリ・レストアDVDの出来上がりです。
圧縮しても1個のバックアップファイル・イメージファイルの大きさが4Gバイトを超えそうな時は分割バックアップしてもいいのですが、genisoimageコマンドの"-allow-limited-size"オプションを使用すれば互換性は犠牲になりますが、大きなサイズのファイルをDV
[mk-recovery-dvd-iso.sh]
#!/bin/sh -e
test $# -lt 1 && echo "$0 (backup directory)" && exit 1
cd "${1}/isolinux"
if ! (test -e isolinux.cfg) then
cat<<EOT>isolinux.cfg
DEFAULT vmlinuz
APPEND initrd=initrd.img /mnt=/dev/scd0=udf quiet
TIMEOUT 30
LABEL linux
KERNEL vmlinuz
APPEND initrd=initrd.img
EOT
fi
cp -pf /usr/lib/syslinux/isolinux.bin .
cd ../..
genisoimage -allow-limited-size -r -R \
-b isolinux/isolinux.bin \
-c isolinux/boot.cat \
-no-emul-boot \
-boot-load-size 4 \
-boot-info-table \
-V "${1}" \
-o "${1}.iso" "${1}"
スクリプト中で自動的に作成されるisolinux.cfgにはデフォルトのカーネル引数に/mnt=/dev/scd0=udfと記述されます&color(Red){(0.9.008以降のみ)};。記述しておくと起動時にfstabに
/dev/scd0 /mnt udf defaults 0 0
と追記され、マウントがおこなわれます。 ※:[[%%%/mntへの自動マウント機能%%%>#automount_on_mnt]]
あと、カーネル引数にsingleを指定しておくとログインプロンプトが出なくなるので、リカバリDVDとして使うならそうした方がいいかもしれません。あと、DVD関係のスクリプト等が[[%%%こちら%%%>utlshell]]にあります。
&aname(customize);
** カストマイズ(およびその保存) [#q898adae]
基本的にはスクリプトを読めばわかると思います。
それから以下のコマンドは完全に覚えておいた方がいいと思います。
イニシャルラムディスクの解凍
# gzip -dc ファイルパス | cpio -idmv
イニシャルラムディスクの再圧縮
# find . | cpio -H newc -o | gzip -9 > ファイルパス
&aname(former-version);
** 以前のバージョンのUbuntuでの使用可否 [#l4baa51b]
%%試しにUbuntu 8.04.1でキットを使用してみました。%%
%%結論としては僅かな変更で使用できます。%%
%%修正点は以下のとおりです。%%
-%%/sbin/dosfslabelはないので、それをコピーする個所を削除する%%
-%%/lib/dhcp3-client/を追加する%%
-%%/etc/{init.d,rcS.d}/*mountall-bootclean.shを削除する(元々8.10でも必要ない^)%%
-%%/initのパッチ当てで、最後の行が失敗するので、手で修正した上で新たな.patchファイルを作っておく%%
0.9.006で8.04(系)にも対応しました。
0.9.008以降は9.10(系)以降専用です。
&aname(bugs);
** バグ [#ld236671]
%%7台のPCで動かしてみましたが、1台だけ正しく動きませんでした。8年程前のIBM Netvistaです。ネットワークが使えなかったようです。そのPCが変わったハード構成であるのはわかっているので、それ以上全く調査はしていません。%%
(2009-02-27)最新版では問題ありません。
#br
それから、キットでは親環境の設定ファイル類をかなりの数、そのままコピーしています。元々親環境であまりに大きくカスタマイズしている場合にはそれが原因で不具合が生じる可能性もあるでしょう。
&aname(other);
* その他 [#cd640bd5]
&aname(about-version);
** バージョンについて [#z9d59613]
最初のリリースバージョン: 0.9.001
これはあまり真剣に改良する気はないということを示すものです。
バックアップ関係の機能を充実させている筈なのにCD,DVD書き込み機能を付けていないことには自分でも仕様的に抜けを感じています。この機能を省いた理由は現在のgenisoimageコマンドがまだmkisofsコマンドの完全な代替となっていない為です。
&aname(about-license);
** ライセンスについて [#e8ddeddb]
わざわざ書くまでもないくらいです。
今までに公開してきたものと同じく実質PDSです。
Ubuntuのバイナリや著作権表記のあるスクリプトは一切変更していません。そのままコピーして利用しているだけです。
#br
(2009-12-23追記)0.9.008以降はGPL2ソフトウェアのmountallを改変して利用していますので、その部分についてはGPL2となりました。
#br
&aname(fixpbr);
* NTFSパーティションのPBR修復 [#ne01ad41]
※当サイト内にこの分野の専門ページが[[%%%これ%%%>fixpbr]]、[[%%%これ%%%>utlshell#pbr]]とあります。
[[%%%修復法1%%%>fixpbr#fixmethod1]]に関してはパスの通った/直下にextract-backuped-pbr.shが置いてあります。
&color(Green){緑色};に着色されているのですぐにわかると思います。
# extract-backuped-pbr.sh /dev/sda1
みたいな感じで実行します。
もちろん[[%%%修復法2%%%>fixpbr#fixmethod2]]にも使用できます。
&aname(restore-partiton-table);
* パーティションテーブルの修復 [#z72e4a27]
※当サイト内に[[%%%こんな文章%%%>utlshell#respartable]]があります。
パスの通った/直下にguess-partition-table.shが置いてあります。
&color(Green){緑色};に着色されているのですぐにわかると思います。
# guess-partition-table.sh /dev/sda -HS=255/63 | tee guess-PT-dell.log
みたいな感じで実行します。
まずは引数なしで実行してみて下さい。
実際に実行した感じはこんな感じです。
# guess-partition-table.sh /dev/sda -HS=255/63 | tee guess-PT-dell.log
Target Device: /dev/sda
Total Cylinders: 15017
H/S=255/63
Start-Cylinder 2 offset 0 NTFS Boot Sector
Cylinder 610 is NTFS End Cylinder
Start-Cylinder 611 offset 0 FAT Boot Sector
Start-Cylinder 1221 offset 0 GRUB Boot Sector
Start-Cylinder 3182 offset 0
Start-Cylinder 3312 offset 0
Start-Cylinder 3312 offset 63 GRUB Boot Sector
Start-Cylinder 4253 offset 0
Start-Cylinder 4253 offset 63 GRUB Boot Sector
Start-Cylinder 5554 offset 0
Start-Cylinder 5554 offset 63 GRUB Boot Sector
Start-Cylinder 6295 offset 0
Start-Cylinder 6295 offset 63 GRUB Boot Sector
Start-Cylinder 6862 offset 0
Start-Cylinder 6862 offset 63 NTFS Boot Sector
で、同じディスクのfdisk -l の出力はこんな感じです。
# fdisk -l /dev/sda
Disk /dev/sda: 123.5 GB, 123522416640 bytes
255 heads, 63 sectors/track, 15017 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xfc69fc69
Device Boot Start End Blocks Id System
/dev/sda1 * 2 610 4891792+ 7 HPFS/NTFS
/dev/sda2 611 1219 4891792+ b W95 FAT32
/dev/sda3 1221 3080 14940450 bf Solaris
/dev/sda4 3182 15017 95072670 5 Extended
/dev/sda5 3182 3311 1044193+ 82 Linux swap / Solaris
/dev/sda6 3312 4252 7558551 83 Linux
/dev/sda7 4253 5553 10450251 83 Linux
/dev/sda8 5554 6294 5952051 83 Linux
/dev/sda9 6295 6861 4554396 83 Linux
/dev/sda10 6862 15017 65513038+ 7 HPFS/NTFS
この例の場合は正しいパーティションテーブルを修復できるだけの情報量が"ほぼ"得られていると言えるでしょう。ハードディスク内のパーティションがNTFSやFAT32などWindows系のファイルシステムだけで占められている場合や、この例のように[[%%%2段階ブート%%
#br
※上のguess-partition-table.shの出力でoffset 63(1トラックあたりのセクタ数分シリンダ先頭からズレた位置)にパーティションの先頭が見つかっているのは、そこが論理領域であることを示しています。
&aname(ntfs-fat-mount);
* NTFS,FAT32,FAT16パーティションからの日本語名ファイル抽出、バックアップ [#m9fe9f62]
halを含めていないので自動でマウントはされません。適宜自分でマウントする必要があります。
NTFSのマウントでは特にオプションは必要ありません。
# mount /dev/sda1 /mnt
FAT,FAT32のマウントではこんな感じのオプションを付与して下さい。
# mount /dev/sda1 /mnt -o shortname=mixed,utf8
&aname(ext3-fat-format);
* ext3,FAT32,FAT16のフォーマット [#cc661fb3]
ext3のフォーマットは大量のオプションを付けるべきなのでスクリプトを用意してあります。
パスの通った/直下にmkfs.ext3.shが置いてあります。
&color(Green){緑色};に着色されているのですぐにわかると思います。
# mkfs.ext3.sh /dev/sda1
みたいな感じで実行します。
#br
FAT32,FAT16のフォーマットは
mkfs.vfatなんかでおこなって下さい。
&aname(nfs-mount);
* NFSマウント [#sde7826c]
NFSv4には対応していません。他に特に言うべきことはないと思います。
# mount IPアドレス:/エクスポートポイント マウントポイント
&aname(fdisk);
* パーティションの確保・変更 [#sf44599a]
最近はLinuxでもGUIでこの種の作業をおこなう機会が多いのかもしれませんが、日頃からCUIのfdiskコマンドでおこなう癖をつけておいた方が何かトラブルがあった際に応用が効き易いと思います。
そしてパーティションを編集した後は必ず
# fdisk -l /dev/sda > /mnt/fdisk-vaio-20090118.txt
みたいな感じでテキストの記録を取っておきましょう。
&aname(cifs-mount);
* CIFSマウント(Windowsファイルサーバ、Sambaサーバへの接続) [#cd851612]
基本的な使い方は、
# mount //IPアドレス/共有名 マウントポイント -o user=hoge,iocharset=utf8
IPアドレスはipオプションで指定して↓こんな感じにすることもできます。
# mount //サーバ名/共有名 マウントポイント -o ip=IPアドレス,user=hoge,iocharset=utf8
管理共有(?$)もOKです。
&aname(loader-install);
* 各種ブートローダ(MBM,grub,syslinux)のインストール・設定変更 [#o95ca6f8]
[[%%%MBM%%%>mbm#inst-pack]]のインストールは、
パスの通った/直下にinstall-mbmというシンボリックリンクが置いてあります。
&color(Aqua){''水色''};に着色されているのですぐにわかると思います。
# install-mbm /dev/sda
みたいな感じで実行します。
#br
grub2のセットアップは[[%%%ここ%%%>grub2_and_grub1#grub2_rescue]]を参照して下さい。 &color(Blue){(0.9.008以降grub2を追加)};
#br
grub1のセットアップは、grub1コマンドを使って下さい &color(Blue){(0.9.008以降はgrubをgrub1に改名してインストール)};
新規にgrubディレクトリを構築する場合はcp -rp /usr/lib/grub1/i386-pc somewhere/grub すればいいでしょう。
詳細は他ページの[[%%%grubのインストール%%%>grub2_and_grub1#grub1_simple_setup]]、[[%%%ブート環境の復旧(grub再インストール時の注意点)%%%>grub2_and_grub1#grub1_rescue]]を参照して下さい。
#br
syslinuxのインストールについては特に説明はありません。
&aname(install-mbr);
* デフォルトMBRイメージのインストール [#z2e0db71]
これはWindowsがMBRにインストールするものと機能的に互換なブートローダ(つまり画面に何も表示せず、ただアクティブなパーティションをブートするだけ)をインストールする作業です。
これをおこなえば、実質的にgrubやMBMををアンインストール出来るということになります。
# dd if=/usr/lib/syslinux/mbr.bin of=/dev/sda
みたいな感じで実行します。
&aname(clear-ntsig);
* NTシグニチャのクリア [#a889101b]
NTシグニチャのクリアはNT系OSのハードディスクを引越ししたりマルチブートする際には必須となる知識です。
パスの通った/直下にclear-disk_identifier(ntsig).shが置いてあります。
&color(Green){緑色};に着色されているのですぐにわかると思います。
後は[[%%%こちら%%%>utlshell#clear-ntsig]]を参照して下さい。
#br
* ご要望、ご意見、質問を下のフォームにどうぞ&br;(でもここより、[[掲示板>board]]や[[書き込みフォーム>form]]のページに書いて頂いた方が気づき易いと思います。) [#i6c83d34]
#areaedit(nofreeze,noauth,btn:[修正(書き間違った場合にご利用下さい)])
- Server版9.04インストール直後に作業したら/usr/bin/stringsがないのでスクリプト止まりました。binutilsも取ってこないとだめかも……。 -- [[ippei]] &new{2009-08-16 (日) 19:51:04};
- すみません。今始めて読みました。今日リリースした最新版にbinutilsがインストールされているかを確認する行を追加すれば良かったと今さらながら思います。 -- [[disklessfun]] &new{2009-12-02 (水) 02:02:03};
- amd64環境だとamd64版no -- [[kabbalah]] &new{2010-04-30 (金) 13:07:50};
- (↑入力ミス失礼)amd64環境だとamd64版のmountallを作ってしまって、その後のdpkg -xで失敗します。 -- [[kabbalah]] &new{2010-04-30 (金) 13:09:36};
#comment
#areaedit(end)
終了行:
TITLE:Minimum Ubuntu (ミニマムUbuntu:レスキュー機能を持ち、限界までサイズを絞ったUbuntu Linuxの派生)
&size(16){(2012-7-14)Hi.Yamamorという方がMinimum Ubuntuの12.04版を作成されています。};
[[%%%http://www.geocities.jp/bay3897/linux/min-ubuntu.html%%%:http://www.geocities.jp/bay3897/linux/min-ubuntu.html]]
----
&size(16){&color(Red){(2011-5-8)まだUbuntu 11.04をベースとした作成については確認していません。対応もまだ未定です。ただしUbuntu 10.04をベースに作成したMinimum Ubuntuで問題なく最新の11.04をメンテナンスできます。};};
&size(16){&color(Red){(2010-10-30)Ver.0.9.013はUbuntu 10.10に対応していません。};};
RIGHT:初出 2009-01-18
RIGHT:最終更新 2012-10-29
LEFT:
Minimum Ubuntuのバイナリをダウンロードできるようにされたサイトがあります。WinMac氏のサイトです。
[[''%%%レスキュー用LinuxベースライブCDのメモ Vol.2%%%'':http://winmac.blog33.fc2.com/blog-entry-119.html]]
----
&color(Blue){(2012-10-29)Ubuntu 10.04 LTSのアップデートに対応したUbuntu 10.04 LTS専用バージョン:0.9.014をリリースしました。};
&color(Blue){(2010-5-18)ちょっと更新しました(0.9.013)。(2010-05-16)[[&color(Blue){%%%こちらのユーティリティ%%%};>grub2_and_grub1#additional_work]]を含んだバージョン(0.9.011)をリリースしました。(2010-05-04)Ubuntu 10.04に対応した新バージョン
''Minimum Ubuntuの特徴はカーネルとinitramfsだけでOSが動くこと''です。カーネル2.6でinitramfs形式に変更されてからこういったことを実現しているのは''Minimum Ubuntu''だけではないでしょうか。この特徴によって事実上あらゆるブート環境で使用が可能と
#br
[[&ref(minimum-ubuntu_1_s.png);:http://wikiwiki.jp/disklessfun/?plugin=attach&pcmd=open&file=minimum-ubuntu_1_b.png&refer=minimum-ubuntu]]
主にバックアップ・レスキュー用途を想定しています。その為grubはgrub1(grub-legacy,grub 0.97)とgrub2の両方をインストールしてあります。
&color(Blue){[[%%%&color(Blue){こちらのページ};%%%>grub2_and_grub1]]にはgrub2,grub1のレスキュー法などが書いてあります。};
#br
私自身は主にPXEブートで様々なユーティリティ用途(パーティションの編集, MBMのインストール, grub1,grub2のセットアップ, PBRの操作)、CDブートで仮想環境のメンテナンス・OSのレストア・Minimum Ubuntuの開発等に使用しています。[[リカバリDVDのOS>#recov
#br
僅か28Mバイト余りの極少サイズながら、ネットワーク越しのバックアップ・レストア,各種ブートローダのインストール・修復、パーティションテーブルの修復、NTFS読み書き等々、ローレベルな機能を充実させたレスキュー用Linuxです。
#br
バイナリ配布ではなくて、作成キットの配布です。このキットはUbuntu系(Ubuntu,Xubuntu,KubuntuやUbnutu Server等)がインストールされた環境上で使用できます。Ubuntu系Linuxが親環境となるわけです。2010-05-04現在、最新のVer.0.9.010が対応している親環境
#br
&color(Blue){ページ最下部にユーザの方の投稿がありますが、今のところ''親環境としては''32bitPCしか対象にしていないのでamd64環境を親環境として使用すると細々としたエラーが発生すると思います。対応は簡単だろうと思いますが今日(2010-5-4)時点ではま
#br
USBメモリやSDカード等のストレージが安くなった今、こんなに小容量なLinuxが特に必要なわけではありません。しかし自作[[OneCDルータ>onecddebian]]とかを時々作成したりする私としては日頃使っているLinuxがいかに無駄な部分が多いかを感じていましたので、
#br
-技術的な特徴
--ブート時にchrootしません。イニシャルラムディスク(本当はラムディスクではなくてinitramfs)上でinitデーモンを動かします。通常のルートとして見ると極小サイズですが、イニシャルラムディスクとしては超リッチだと見ることができます。
---キット同様に特殊なイニシャルラムディスクを作成する場合に、キット中のcopy-execfile-to-newroot.shはかなり役に立つと思います。是非利用(流用)してみて下さい。
--chrootしないのでvmlinuzとinitrd.img、ブートする前の段階ではこの2ファイルだけが構成ファイルです。しかもブート時にカーネルコマンドライン引数は全く必要ありません。構成が簡単なのでUSBメモリやCD、CF・SDカード等、フロッピー(は容量不足)以外のあ
--もちろんこのサイズですからXは含んでいません。そしてjfbtermも日本語入力システムも含まれていません。しかしネットワークが使え、sshdが動いているので、リモート接続すれば日本語名のファイルも問題なく扱えます。
#br
-出来ることの例
--[[%%%NTFSパーティションのPBR修復%%%>#fixpbr]]
--[[%%%パーティションテーブル修復(条件に恵まれれば)%%%>#restore-partiton-table]]
--[[%%%NTFSパーティションのネットワーク越しのバックアップ・レストア%%%>ntfsbkup]]
--[[%%%各種OSパーティションのイメージ形式によるバックアップ・レストア%%%>ntfsbkup]]
--[[%%%NTFS,FAT32,FAT16パーティションからの日本語名ファイル抽出、バックアップ%%%>#ntfs-fat-mount]]
--[[%%%Linuxの(イメージ形式ではない)バックアップ・レストア%%%>linuxbkup]]
--[[%%%ext3,FAT32,FAT16のフォーマット%%%>#ext3-fat-format]]
--[[%%%ハードディスクの引越し%%%>hduse#movehdd]]
--[[%%%NFSマウント%%%>#nfs-mount]]
--[[%%%CIFSマウント(Windowsファイルサーバ、Sambaサーバへの接続)%%%>#cifs-mount]]
--[[%%%パーティションの確保・変更%%%>#fdisk]]
--[[%%%各種ブートローダ(MBM,grub,syslinux)のインストール・設定変更%%%>#loader-install]]
--[[%%%デフォルトMBRイメージのインストール%%%>#install-mbr]]
--(上記を実行するための条件として)sshdの稼動
--rsync
--ftp送受信
--[[%%%NTシグニチャのクリア%%%>#clear-ntsig]]
#br
-その他の説明(簡易マニュアル的)
--[[%%%キットの使い方%%%>#how-to-use]]
---[[%%%作成手順%%%>#how-to-create]]
---[[%%%デフォルトユーザ名、パスワード等%%%>#user]]
---[[%%%ネットワークの設定%%%>#network-config]]
---[[%%%キーボードの設定%%%>#keyboard]]
---[[%%%必ず/mntにマウントして下さい(grub2の制限回避措置)%%%>#grub2-ristriction]]
---[[%%%grub1(grub 0.97)について%%%>#grub1]]
---[[%%%mountallコマンドについて%%%>#mountall]]
---[[%%%/mntへの自動マウント機能%%%>#automount_on_mnt]]
---[[%%%その他の注意%%%>#other-cautions]]
--[[%%%いろいろなブート方法%%%>#other-methods]]
---[[%%%ネットワークブート(PXEブート)の設定%%%>#networkboot]]
---[[%%%通常のrootファイルシステムとしての使用法%%%>#root-filesystem]]
---[[%%%リカバリーDVDのOSとしての使用%%%>#recovery-os]]
--[[%%%カストマイズ(およびその保存)%%%>#customize]]
--[[%%%以前のバージョンのUbuntuでの使用可否%%%>#former-version]]
--[[%%%バグ%%%>#bugs]]
--[[%%%その他%%%>#other]]
---[[%%%バージョンについて%%%>#about-version]]
---[[%%%ライセンスについて%%%>#about-license]]
#br
ダウンロード &ref(create-minimumubuntu-kit-0.9.014.tar.gz,nolink); 2012-10-29更新 最新にアップデート済みのUbuntu 10.04 LTS専用
#br
ダウンロード &ref(create-minimumubuntu-kit-0.9.013.tar.gz,nolink); 2010-05-18更新 Ubuntu 9.10系専用%%以降専用、もちろんUbuntu 10.04に対応%%
#br
ダウンロード &ref(create-minimumubuntu-kit-0.9.007.tar.gz,nolink); 2009-07-19更新 Ubuntu 9.04系以前専用
0.9.004からは機能に関する更新をおこなっています。
0.9.006からはUbuntu 8.04,8.10,9.04系に対応しています。従来は8.10系のみ。
#br
&size(11){%%(2009-4-6記)しばらく更新していないのですが、予定では006ではscreen,testdisk,eject各コマンドを追加するつもりです。007では何処かにバージョン表示を追加したいです。またルート以外のデバイスを起動時に自動マウントするオプションを追加す
#br
&aname(how-to-use);
* キットの使い方 [#w84a8a16]
&aname(how-to-create);
** 作成手順 [#f640fa7a]
カーネルは親環境で現在使われているカーネルをそのまま使います。
イニシャルラムディスクは現在使われているものを元にして大幅に改変したものを作成します。
まず解凍したディレクトリに入り、
# ./create-minimumubuntu-initrd_contents.sh
足りないパッケージがあれば途中でそのインストールが親環境に対しておこなわれます。ただしもしICH?RのRAID0デバイスを扱う予定がある場合は事前に手動でdmraidを親環境にインストールしておいて下さい。
同じ場所のworkディレクトリ内に新たなイニシャルラムディスクの中身が作成されます。
&color(Blue){0.9.008以降ではこの処理中に一部(今のところmountallだけ)コマンドのリコンパイル作業が追加された為、少し処理時間が延びました。};
"Done"が画面に出力されれば問題なく作成されたことになります。
ここで場合によっては適宜独自のカスタマイズをおこなって下さい。
&color(Red){※0.9.005まで含んでいたufwは削除しました。};代わりにiptablesを直接叩いています。
#br
次に
# ./create-minimumubuntu-usbboot-img.sh
で、28Mバイトの大きさのusb-minimumubuntu.imgというファイル名のイメージファイルが作成されます。
これを
# dd if=usb-minimumubuntu.img of=/dev/sdb
みたいな作業でUSBメモリに書き込めばUSBブート版の完成です。この作業は最も、そして圧倒的に危険な作業なので十分注意しておこなって下さい。(作業前にfdisk -l /dev/sd?を何度もおこなって十二分に対象のディスクを間違っていないか確認した方がいいでしょ
ここで作成されるイメージファイルはパーティションテーブルを使わない形式です。この形式が嫌いな人は適宜自分で変更して下さい。またこのイメージでブートすれば、そのOS上でパーティションテーブルを使用する方法へと変更できます。
&aname(user);
** デフォルトユーザ名、パスワード [#s7e2dacd]
rootとowner(id=1000)がいます。初期パスワードはどちらもpasswordです。
しかし常にrootで作業することを前提とした内容になっていますのでownerは使用しないで下さい。デフォルトではリモートからいきなりrootでログインできるようになっています。
一度もブートさせない間にパスワードを変更したい場合は、親環境で同じユーザのパスワードを変更してから/etc/shadowの該当行をcontentfiles.tarの中のshadowにコピペして下さい。
カーネル引数にsingleを指定した場合はログインプロンプトは出ません。
#br
↑(2010-2-10追記)パスワード入力は個人的なレスキュー用途で使用する場合には不要だと思います。しかしsshdがデフォルトで起動しているので、建前上?、このようにしているわけです。それに自分以外の人がいる場所で使用するなら、建前でなく本当にパスワード
[[%%http://blog-imgs-37-origin.fc2.com/w/i/n/winmac/minimum-ubuntu-diff.txt%%:http://blog-imgs-37-origin.fc2.com/w/i/n/winmac/minimum-ubuntu-diff.txt]]
&aname(network-config);
** ネットワークの設定 [#l0468006]
デフォルトではdhcpになっています。/etc/networkにinterfaces.fixedaddress.sampleという固定アドレス用のサンプルファイルが置いてありますので、固定アドレスにしたい場合はそれを参考にして/etc/network/interfacesを編集してから(vi(vim.tiny)が入ってい
#br
デフォルトではファイヤーウォール(iptables)が稼動しています。外からはsshととpingとDHCPだけ許可しています。レスキュー用Linuxであれば必ずしもファイヤーウォールを稼動させる必要はないと思いますが、sshサーバが稼動していることと、私としては簡易ル
&aname(keyboard);
** キーボードの設定 [#nb808f93]
キーボードの設定機能は省いてあります。親環境の設定が受け継がれます。
&aname(grub2-ristriction);
** 必ず/mntにマウントして下さい(grub2の制限回避措置) [#nb372ad4]
&color(Red){以下の説明はは0.9.008以降のみ該当};
標準状態でルート直下に、
boot -> /mnt/boot
とのシンボリックリンクを作成してあります。
grub2のレスキュー・復旧には[[%%%''この知識''%%%>grub2_and_grub1#grub2_rescue]]が必須です。そこの内容を理解して頂けたなら、こちらもすぐに理解頂けると思います。つまり、''マウントポイントとして/mntを使うことを前提としたダミーディレクトリ''を標
このようなことが可能なのは/bootを自OSの起動に使用しないMinimum Ubuntuならではです。
grub2の復旧やレスキューや再セットアップをおこなうパーティションは''必ず/mntにマウントして下さい''。
(2010-5-18追記)/bootが別パーティションになっている環境のgrub2を再セットアップ(修復やレストア)する場合は、標準の/bootシンボリックリンクを削除して代わりに、
boot -> /mnt
とのシンボリックリンクを作成して下さい。これは現在のgrub-setupの実装上の問題を回避する方法です。これでgrub-setupは正常におこなえるのですが、このような環境用のgrub.cfgファイルをgrub-mkconfigコマンドで作成することは今のところできません。対応
ただし現在のファイルを少しだけ、直に修正すれば、使いのものになるgrub.cfgファイルを生成できます。
bootが別パーティションになっている環境用のgrub.cfgファイルを生成する為にはgrub-mkconfigコマンド内の適切な場所に、以下の例のように、4つの変数とその値を書き込んでやればいいんです。
GRUB_DEVICE=/dev/sda5
GRUB_DEVICE_UUID=afba4670-d34d-430c-88a8-e710347b484a
GRUB_DEVICE_BOOT=/dev/sda6
GRUB_DEVICE_BOOT_UUID=41088a17-a69d-4cb2-8206-426cfe65af91
これだけ設定してやれば、ちゃんと使えるgrub.cfgファイルが生成できます。ここまでで気づいたと思いますが、/bootが別パーティションの場合、grub.cfgファイルを生成する為には/用と/boot用、それぞれのデバイス名とUUIDを指定する必要があるわけです。これ
&aname(grub1);
** grub1(grub 0.97)について [#c2760dc1]
&color(Red){以下の説明はは0.9.008以降のみ該当};
Ubuntu 9.10以降に含まれないgrub1(grub 0.97)は、Ubuntu 9.04のミラーサーバからdebパッケージをダウンロードしてインストールしています。
grub2のファイル群と名前が重ならないようにファイル名やディレクトリ名やヘルパースクリプト中の''"grub"を"grub1"に変更''しています。
例)
(grub1の)grub → grub1 ←''使用頻度が多いと思うので特に注意して下さい。''
(grub1の)grub-install → grub1-install
&aname(mountall);
** mountallコマンドについて [#rfce9a9e]
&color(Red){以下の説明はは0.9.008以降のみ該当};
リコンパイル時に使用されるpatches/mountall-1.0_enable-rootfsroot.patchと適用される個所直後のソースをご覧頂くと一目瞭然ですが、残念ながら修正前は絶対にrootfsをルートファイルシステムに出来ない仕様となっています。
何でまたわざわざNULLにするんだよ?とボヤきたくなります。
&aname(automount_on_mnt);
** /mntへの自動マウント機能 [#c3585e07]
&color(Red){以下の説明はは0.9.008以降のみ該当};
カーネル引数に/mnt=${device}=${type}形式で記述しておくとfstabに
${device} /mnt ${type} defaults 0 0形式で追記されて、
ブート時に自動でマウントされるようになりました。
リカバリDVDのOSとして使う場合等で便利です。
例)
/mnt=/dev/scd0=udf ←''リカバリDVDのOSとして使用する場合''
/mnt=/dev/sda1=ext3
&aname(other-cautions);
** その他の注意 [#u0605c3b]
デフォルトでは/直下にブート初期に使用したinitが残ったままになっています。
起動中は再実行してはいけないものなので、本来ならばrc.localとかで削除するかmoveすべきなのですが、本キットはLinuxの勉強に役立てて欲しいという意図もあるので、目立つ場所(/直下)にわざと残してあります。
#br
このキットで作成したイニシャルラムディスクでbootする為にはもちろんそれなりのメモリ容量が必要となります。現状では起動するために最低80Mバイトのメモリが必要です。[[%%%通常のrootファイルシステム%%%>#root-filesystem]]として使用した場合にはもちろ
#br
親環境の最新カーネルを決めうちで使用しますので、親環境のカーネルを更新した際は必ず再起動してからキットを使用して下さい。
#br
Minimum Ubuntuは通常のLinuxではつきもののカーネル引数でのルートデバイスの指定(root=??)が完全に不要です。しかし逆に、ルートデバイスの指定がなされた際にそれを無視するようには作っていませんので、ルートデバイスの指定は絶対にしないで下さい。同
&aname(other-methods);
** いろいろなブート方法 [#q08d06f8]
キットの中にmenu.lst.sampleというファイル名でgrub用の設定ファイルの雛型があります。
何しろブート時にカーネルコマンドライン引数が必要ないので、気軽にisolinuxやgrubを使ってCDからブートさせたり、PXEブートさせて下さい。コンパクトなので[[%%%リカバリDVD%%%>recv-dvd]]のOSとしても適しています。
#br
通常カーネルコマンドライン引数は必要ありませんが、もちろん引数にsingle※を与えればシングルユーザモードで起動します。もちろん通常のランレベルでの使用時にtelinit 1すればシングルユーザモードに移行します。
※キット付属のsyslinux.cfgを使用した場合はbootプロンプトで「vmlinuz single」もしくは「linux single」と入力することになります。
&aname(networkboot);
** ネットワークブート(PXEブート)の設定 [#m8fe5ddd]
Linuxをネットワーク母艦とするならpxelinux.0を使うべきでしょう。pxelinux.0はできる限り最新のものを使用して下さい。場合によりけりではありますが、pxelinux.0に関しては''”ディストリビューション付属のものを最新に更新するだけでいい”と思わない方が
設定の一例を簡単に示します。
-atftpd,syslinux,dhcp3-serverパッケージをインストールする
-/tftpboot/common/にvmlinuz,initrd.imgを置く。(commonディレクトリは作成して下さい。またtftpのデフォルト・ルートディレクトリが/var/lib/tftpbootなどの場合もあります。適宜読み替えたり、inetd.confをカスタマイズする等の作業を加えて下さい。)
-/lib/syslinux/pxelinux.0を/tftpboot/にコピーする
-dhcpd.confに「filename "pxelinux.0"」を記述する(1ネットワークの中,グローバルな場所,いずれでもいい)
-/tftpboot/pxelinux.cfg/にdefaultというファイル名で以下の内容のファイルを設置する
SAY .
SAY .
SAY 1) Minimum Ubuntu
SAY 2) memtest86
SAY .
SAY h) Boot from first Harddisk (0x80)
SAY .
SAY When no key is pressed for 10 sec, or when you hit Enter, "h" will be run...
default h
timeout 100
prompt 1
label h
localboot 0x80
label 1
kernel common/vmlinuz
append initrd=common/initrd.img quiet
label 2
kernel common/memdisk
append initrd=common/memtest.bin
上のような内容にしなくても、実際にはキット内のsyslinux.cfgをそのままdefaultというファイル名に変更するだけでも使用することが出来ます。
もっと体裁を良くしたければ、[[%%%このページ%%%>disklessfc#pxelinux-config]]のようにvesamenu.c32を追加使用すればいいでしょう。メニュー画面の背景に画像を使う必要を感じなければvesamenu.c32ではなくmenu.c32を使うことをお薦めします。
&aname(root-filesystem);
** 通常のrootファイルシステムとしての使用法 [#k66979ef]
本キットで作成したイニシャルラムディスク(の中身)をイニシャルラムディスクとしてではなく、通常のrootファイルシステムとして使用することもできます。その場合のイニシャルラムディスクは標準のイニシャルラムディスクを用います。ブート時の引数は普通の
この方法を用いるとメモリ容量が非常に小さなPCでも使用できます。この方法に関するTipsですが、ルータ用途等に使用している場合、リモートからシステムを一気に更新したい場合があると思いますが、この方法を用いる場合にはrootファイルシステム用のパーティ
&aname(recovery-os);
** リカバリーDVDのOSとしての使用 [#n3320799]
Minimum Ubuntuはリカバリー・レストア用DVDのOSとしても最適です。超コンパクトなのでDVDの容量を最大限バックアップ用に利用できますし、オールオンメモリーで動作しますので稼動中に''DVDの差し替え''も可能です。デフォルトでリモート操作が可能なことも
#br
どのようにしてリカバリーDVDのOSとして使用するのか、具体的に説明します。
例としてバックアップファイル等を以下のように配置します。
ワークdirectory/----DELLBACKUP/
|
|--dell-sda2-20090319.img.bz2
|--fdisk-dell-20090319.txt
|--md5sum-dell-sda2-20090319.txt
|--isolinux/
|
|--vmlinuz
|--initrd.img
DELLBACKUP直下のバックアップファイル群の説明は省略します。
isolinux直下のvmlinuzとinitrd.imgはMinimum Ubuntuを構成する全ファイルです。
このように配置した状態で、ワークdirectory直下にcdし、
$ mk-recovery-dvd-iso.sh DELLBACKUP
とタイプするとDELLBACKUP.isoというisoイメージファイルが出来上がります。
これを[[%%%このように%%%>utlshell#growisofs]]焼けばリカバリ・レストアDVDの出来上がりです。
圧縮しても1個のバックアップファイル・イメージファイルの大きさが4Gバイトを超えそうな時は分割バックアップしてもいいのですが、genisoimageコマンドの"-allow-limited-size"オプションを使用すれば互換性は犠牲になりますが、大きなサイズのファイルをDV
[mk-recovery-dvd-iso.sh]
#!/bin/sh -e
test $# -lt 1 && echo "$0 (backup directory)" && exit 1
cd "${1}/isolinux"
if ! (test -e isolinux.cfg) then
cat<<EOT>isolinux.cfg
DEFAULT vmlinuz
APPEND initrd=initrd.img /mnt=/dev/scd0=udf quiet
TIMEOUT 30
LABEL linux
KERNEL vmlinuz
APPEND initrd=initrd.img
EOT
fi
cp -pf /usr/lib/syslinux/isolinux.bin .
cd ../..
genisoimage -allow-limited-size -r -R \
-b isolinux/isolinux.bin \
-c isolinux/boot.cat \
-no-emul-boot \
-boot-load-size 4 \
-boot-info-table \
-V "${1}" \
-o "${1}.iso" "${1}"
スクリプト中で自動的に作成されるisolinux.cfgにはデフォルトのカーネル引数に/mnt=/dev/scd0=udfと記述されます&color(Red){(0.9.008以降のみ)};。記述しておくと起動時にfstabに
/dev/scd0 /mnt udf defaults 0 0
と追記され、マウントがおこなわれます。 ※:[[%%%/mntへの自動マウント機能%%%>#automount_on_mnt]]
あと、カーネル引数にsingleを指定しておくとログインプロンプトが出なくなるので、リカバリDVDとして使うならそうした方がいいかもしれません。あと、DVD関係のスクリプト等が[[%%%こちら%%%>utlshell]]にあります。
&aname(customize);
** カストマイズ(およびその保存) [#q898adae]
基本的にはスクリプトを読めばわかると思います。
それから以下のコマンドは完全に覚えておいた方がいいと思います。
イニシャルラムディスクの解凍
# gzip -dc ファイルパス | cpio -idmv
イニシャルラムディスクの再圧縮
# find . | cpio -H newc -o | gzip -9 > ファイルパス
&aname(former-version);
** 以前のバージョンのUbuntuでの使用可否 [#l4baa51b]
%%試しにUbuntu 8.04.1でキットを使用してみました。%%
%%結論としては僅かな変更で使用できます。%%
%%修正点は以下のとおりです。%%
-%%/sbin/dosfslabelはないので、それをコピーする個所を削除する%%
-%%/lib/dhcp3-client/を追加する%%
-%%/etc/{init.d,rcS.d}/*mountall-bootclean.shを削除する(元々8.10でも必要ない^)%%
-%%/initのパッチ当てで、最後の行が失敗するので、手で修正した上で新たな.patchファイルを作っておく%%
0.9.006で8.04(系)にも対応しました。
0.9.008以降は9.10(系)以降専用です。
&aname(bugs);
** バグ [#ld236671]
%%7台のPCで動かしてみましたが、1台だけ正しく動きませんでした。8年程前のIBM Netvistaです。ネットワークが使えなかったようです。そのPCが変わったハード構成であるのはわかっているので、それ以上全く調査はしていません。%%
(2009-02-27)最新版では問題ありません。
#br
それから、キットでは親環境の設定ファイル類をかなりの数、そのままコピーしています。元々親環境であまりに大きくカスタマイズしている場合にはそれが原因で不具合が生じる可能性もあるでしょう。
&aname(other);
* その他 [#cd640bd5]
&aname(about-version);
** バージョンについて [#z9d59613]
最初のリリースバージョン: 0.9.001
これはあまり真剣に改良する気はないということを示すものです。
バックアップ関係の機能を充実させている筈なのにCD,DVD書き込み機能を付けていないことには自分でも仕様的に抜けを感じています。この機能を省いた理由は現在のgenisoimageコマンドがまだmkisofsコマンドの完全な代替となっていない為です。
&aname(about-license);
** ライセンスについて [#e8ddeddb]
わざわざ書くまでもないくらいです。
今までに公開してきたものと同じく実質PDSです。
Ubuntuのバイナリや著作権表記のあるスクリプトは一切変更していません。そのままコピーして利用しているだけです。
#br
(2009-12-23追記)0.9.008以降はGPL2ソフトウェアのmountallを改変して利用していますので、その部分についてはGPL2となりました。
#br
&aname(fixpbr);
* NTFSパーティションのPBR修復 [#ne01ad41]
※当サイト内にこの分野の専門ページが[[%%%これ%%%>fixpbr]]、[[%%%これ%%%>utlshell#pbr]]とあります。
[[%%%修復法1%%%>fixpbr#fixmethod1]]に関してはパスの通った/直下にextract-backuped-pbr.shが置いてあります。
&color(Green){緑色};に着色されているのですぐにわかると思います。
# extract-backuped-pbr.sh /dev/sda1
みたいな感じで実行します。
もちろん[[%%%修復法2%%%>fixpbr#fixmethod2]]にも使用できます。
&aname(restore-partiton-table);
* パーティションテーブルの修復 [#z72e4a27]
※当サイト内に[[%%%こんな文章%%%>utlshell#respartable]]があります。
パスの通った/直下にguess-partition-table.shが置いてあります。
&color(Green){緑色};に着色されているのですぐにわかると思います。
# guess-partition-table.sh /dev/sda -HS=255/63 | tee guess-PT-dell.log
みたいな感じで実行します。
まずは引数なしで実行してみて下さい。
実際に実行した感じはこんな感じです。
# guess-partition-table.sh /dev/sda -HS=255/63 | tee guess-PT-dell.log
Target Device: /dev/sda
Total Cylinders: 15017
H/S=255/63
Start-Cylinder 2 offset 0 NTFS Boot Sector
Cylinder 610 is NTFS End Cylinder
Start-Cylinder 611 offset 0 FAT Boot Sector
Start-Cylinder 1221 offset 0 GRUB Boot Sector
Start-Cylinder 3182 offset 0
Start-Cylinder 3312 offset 0
Start-Cylinder 3312 offset 63 GRUB Boot Sector
Start-Cylinder 4253 offset 0
Start-Cylinder 4253 offset 63 GRUB Boot Sector
Start-Cylinder 5554 offset 0
Start-Cylinder 5554 offset 63 GRUB Boot Sector
Start-Cylinder 6295 offset 0
Start-Cylinder 6295 offset 63 GRUB Boot Sector
Start-Cylinder 6862 offset 0
Start-Cylinder 6862 offset 63 NTFS Boot Sector
で、同じディスクのfdisk -l の出力はこんな感じです。
# fdisk -l /dev/sda
Disk /dev/sda: 123.5 GB, 123522416640 bytes
255 heads, 63 sectors/track, 15017 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xfc69fc69
Device Boot Start End Blocks Id System
/dev/sda1 * 2 610 4891792+ 7 HPFS/NTFS
/dev/sda2 611 1219 4891792+ b W95 FAT32
/dev/sda3 1221 3080 14940450 bf Solaris
/dev/sda4 3182 15017 95072670 5 Extended
/dev/sda5 3182 3311 1044193+ 82 Linux swap / Solaris
/dev/sda6 3312 4252 7558551 83 Linux
/dev/sda7 4253 5553 10450251 83 Linux
/dev/sda8 5554 6294 5952051 83 Linux
/dev/sda9 6295 6861 4554396 83 Linux
/dev/sda10 6862 15017 65513038+ 7 HPFS/NTFS
この例の場合は正しいパーティションテーブルを修復できるだけの情報量が"ほぼ"得られていると言えるでしょう。ハードディスク内のパーティションがNTFSやFAT32などWindows系のファイルシステムだけで占められている場合や、この例のように[[%%%2段階ブート%%
#br
※上のguess-partition-table.shの出力でoffset 63(1トラックあたりのセクタ数分シリンダ先頭からズレた位置)にパーティションの先頭が見つかっているのは、そこが論理領域であることを示しています。
&aname(ntfs-fat-mount);
* NTFS,FAT32,FAT16パーティションからの日本語名ファイル抽出、バックアップ [#m9fe9f62]
halを含めていないので自動でマウントはされません。適宜自分でマウントする必要があります。
NTFSのマウントでは特にオプションは必要ありません。
# mount /dev/sda1 /mnt
FAT,FAT32のマウントではこんな感じのオプションを付与して下さい。
# mount /dev/sda1 /mnt -o shortname=mixed,utf8
&aname(ext3-fat-format);
* ext3,FAT32,FAT16のフォーマット [#cc661fb3]
ext3のフォーマットは大量のオプションを付けるべきなのでスクリプトを用意してあります。
パスの通った/直下にmkfs.ext3.shが置いてあります。
&color(Green){緑色};に着色されているのですぐにわかると思います。
# mkfs.ext3.sh /dev/sda1
みたいな感じで実行します。
#br
FAT32,FAT16のフォーマットは
mkfs.vfatなんかでおこなって下さい。
&aname(nfs-mount);
* NFSマウント [#sde7826c]
NFSv4には対応していません。他に特に言うべきことはないと思います。
# mount IPアドレス:/エクスポートポイント マウントポイント
&aname(fdisk);
* パーティションの確保・変更 [#sf44599a]
最近はLinuxでもGUIでこの種の作業をおこなう機会が多いのかもしれませんが、日頃からCUIのfdiskコマンドでおこなう癖をつけておいた方が何かトラブルがあった際に応用が効き易いと思います。
そしてパーティションを編集した後は必ず
# fdisk -l /dev/sda > /mnt/fdisk-vaio-20090118.txt
みたいな感じでテキストの記録を取っておきましょう。
&aname(cifs-mount);
* CIFSマウント(Windowsファイルサーバ、Sambaサーバへの接続) [#cd851612]
基本的な使い方は、
# mount //IPアドレス/共有名 マウントポイント -o user=hoge,iocharset=utf8
IPアドレスはipオプションで指定して↓こんな感じにすることもできます。
# mount //サーバ名/共有名 マウントポイント -o ip=IPアドレス,user=hoge,iocharset=utf8
管理共有(?$)もOKです。
&aname(loader-install);
* 各種ブートローダ(MBM,grub,syslinux)のインストール・設定変更 [#o95ca6f8]
[[%%%MBM%%%>mbm#inst-pack]]のインストールは、
パスの通った/直下にinstall-mbmというシンボリックリンクが置いてあります。
&color(Aqua){''水色''};に着色されているのですぐにわかると思います。
# install-mbm /dev/sda
みたいな感じで実行します。
#br
grub2のセットアップは[[%%%ここ%%%>grub2_and_grub1#grub2_rescue]]を参照して下さい。 &color(Blue){(0.9.008以降grub2を追加)};
#br
grub1のセットアップは、grub1コマンドを使って下さい &color(Blue){(0.9.008以降はgrubをgrub1に改名してインストール)};
新規にgrubディレクトリを構築する場合はcp -rp /usr/lib/grub1/i386-pc somewhere/grub すればいいでしょう。
詳細は他ページの[[%%%grubのインストール%%%>grub2_and_grub1#grub1_simple_setup]]、[[%%%ブート環境の復旧(grub再インストール時の注意点)%%%>grub2_and_grub1#grub1_rescue]]を参照して下さい。
#br
syslinuxのインストールについては特に説明はありません。
&aname(install-mbr);
* デフォルトMBRイメージのインストール [#z2e0db71]
これはWindowsがMBRにインストールするものと機能的に互換なブートローダ(つまり画面に何も表示せず、ただアクティブなパーティションをブートするだけ)をインストールする作業です。
これをおこなえば、実質的にgrubやMBMををアンインストール出来るということになります。
# dd if=/usr/lib/syslinux/mbr.bin of=/dev/sda
みたいな感じで実行します。
&aname(clear-ntsig);
* NTシグニチャのクリア [#a889101b]
NTシグニチャのクリアはNT系OSのハードディスクを引越ししたりマルチブートする際には必須となる知識です。
パスの通った/直下にclear-disk_identifier(ntsig).shが置いてあります。
&color(Green){緑色};に着色されているのですぐにわかると思います。
後は[[%%%こちら%%%>utlshell#clear-ntsig]]を参照して下さい。
#br
* ご要望、ご意見、質問を下のフォームにどうぞ&br;(でもここより、[[掲示板>board]]や[[書き込みフォーム>form]]のページに書いて頂いた方が気づき易いと思います。) [#i6c83d34]
#areaedit(nofreeze,noauth,btn:[修正(書き間違った場合にご利用下さい)])
- Server版9.04インストール直後に作業したら/usr/bin/stringsがないのでスクリプト止まりました。binutilsも取ってこないとだめかも……。 -- [[ippei]] &new{2009-08-16 (日) 19:51:04};
- すみません。今始めて読みました。今日リリースした最新版にbinutilsがインストールされているかを確認する行を追加すれば良かったと今さらながら思います。 -- [[disklessfun]] &new{2009-12-02 (水) 02:02:03};
- amd64環境だとamd64版no -- [[kabbalah]] &new{2010-04-30 (金) 13:07:50};
- (↑入力ミス失礼)amd64環境だとamd64版のmountallを作ってしまって、その後のdpkg -xで失敗します。 -- [[kabbalah]] &new{2010-04-30 (金) 13:09:36};
#comment
#areaedit(end)
ページ名: