SqueezeでUSBメモリからブート、その1
Debian squeezeをUSB Memory Stickから
bootさせる手順の覚書。
多少不正確なので、間違い等を突っ込んでいただけると助かりますm_ _m
D.3. Unix/Linux システムからの Debian GNU/Linux のインストールを参考に
よく分からないところ補足。
以降の説明では、
- インストール済みのDebian環境をHost(on HDD)
- atombox(i386)
- 作成しようとしているUSB上のDebian環境をTarget(on USB)
- 作成後のブート先も同じatombox
を用います。
Host上で
install debootstrap
普通にapt-getでインストール。
# apt-get update # apt-get install debootstrapset USB Memory Stick on PC
boot先のUSBメモリにパテーションを作成と、
ext3へのフォーマット。USBメモリのデバイスファイル(/dev/xxx)は、fdiskやdmesgで確認してください。
以下、HDDとUSBメモリの場合。# fdisk -lu ... Device Boot Start End Blocks Id System /dev/sda1 * 2048 1940402175 970200064 83 Linux /dev/sda2 1940404222 1953523711 6559745 5 Extended /dev/sda5 1940404224 1953523711 6559744 82 Linux swap / Solaris ... Device Boot Start End Blocks Id System /dev/sdb1 2048 7895039 3946496 b W95 FAT32# umount /dev/sdb1 # fdisk /dev/sdb > p #=> show partition > d #=> delete a partition >> 1 #=> select deleted partition number ... > n #=> create partition >> p #=> select primary partition >>> 1 >>>> #=> select default 1 >>>> #=> select default 1018 > a #=> bootable flag >> 1 > w #=> write table to disk and exitext3でフォーマット
mkfs -t ext3 /dev/sdb1
install debian userland on USB Memory Stick
debootstrapでuserlandを作成。
# /usr/sbin/debootstrap --arch i386 squeeze /mnt http://ftp.us.debian.org/debian
change root on usb
HostからTargetに移動します。
# LANG=C chroot /mnt /bin/bash
Targetに移って
make device file
デバイスファイルを作成*2。
まずはmakedevインストール。
# apt-get update # apt-get install makedevで、procをmount。
# cd / # mount -t proc /proc proc # mount ... #procがmountされているか確認で、/tmp/dev以下にデバイスファイル作成、/devにコピー。
# cd /tmp # mkdir dev # cd dev/ # MAKEDEV generic # tar cf - * | (cd /dev; tar xvf -)mount partition
fstabを編集してmountします。
vi /etc/fstab mount -a
if you use UUID
Hostで実行。
fstabのマウントデバイス指定をUUIDで指定するため。
# blkid /dev/sdb1: UUID="1ac48147-35e8-467b-b897-309368321bfc" TYPE="ext3" /dev/sda1: UUID="a482ec8d-1d51-4c18-9acb-9bebcda657af" TYPE="ext3" /dev/sda5: UUID="5fe95910-8403-468e-a933-48983a92c3a6" TYPE="swap"# cat /etc/fstab
config timezone
設定してない。
config network
デフォルトでHostの設定が反映されてたような?
vi /etc/network/interfaces vi /etc/resolv.conf vi /etc/hostname vi /etc/hostsconfig apt
デフォルトでHostの設定が反映されてたような?
install kernel
で、TargetにLinuxKernelインストール。
# apt-cache search linux-image-2.6.32-5-686-bigmem # apt-get install linux-image-2.6.32-5-686-bigmemが、firmwareどうたらとエラーが出る。
ググると、nonfreeのドライバが理由っぽいのでsource.listにnonfree等を追加。
# vi /etc/apt/sources.list
Hostで実行して、HostとTargetのsource.listの差分。
nonfreeのパッケージをインストール出来るように、
contribとnon-freeを追加。# diff /etc/apt/sources.list /mnt/etc/apt/sources.list 1c1 < # --- > # deb http://ftp.us.debian.org/debian squeeze main 11,12c11,12 < deb http://ftp.jp.debian.org/debian/ squeeze main < deb-src http://ftp.jp.debian.org/debian/ squeeze main --- > deb http://ftp.jp.debian.org/debian/ squeeze main contrib non-free > deb-src http://ftp.jp.debian.org/debian/ squeeze main contrib non-free 19a20 >で、firmwareをインストール。
# apt-get install firmware-linux-nonfree # apt-get install firmware-linuxsetup grub2
# aptitude install grub # grub-install /dev/sdb # update-grubなんか、update-grubでsysどうたらとエラーがでる。
のでHostの/etc/mtabをコピって、mountする。# cat /etc/mtab proc /proc proc rw,noexec,nosuid,nodev 0 0 sysfs /sys sysfs rw,noexec,nosuid,nodev 0 0 # mount sys # update-grubedit /boot/grub/device.map
ちょこちょこっと修正したような?でも修正は不要だったと思います。
で、設定完了。
HDD外してUSBメモリだけにして
再起動してみるとエラー><
GRUBの選択後に
Gave up waiting for root device. ...
と、エラーが出りゅw;
その2に多分続くいたよ><