独自のLiveCD Debianブートディスクを作成する

画像



この知識を共有することにしました。 これらすべては、私自身がインターネットで収集しました。 私はテストし、それが機能することを確認しました。 この指示をより明確にするために、この指示についていくつかコメントします。



まず、ブートCDディスクを長時間作成したかったのですが、手が届きませんでした。 通常、作業コピーを作成する場合は、システムダンプを回避します。 しかし、あなたが手ですべてをするたびに-あなたの手は乾きます。 さらに、システムのコピーを作成する方法、ディスクを分割してフォーマットする方法、ディスクを起動可能にする方法を全員が説明できるわけではありません。 誰もが、Linuxを手元に置いているわけではありません。 さて、私の手はチートシートですべてをするのに疲れて疲れていました-幼稚園、陽気な



練習に移りましょう。 これらの素晴らしいパッケージをインストールしてください。



apt-get install xorriso live-build extlinux syslinux squashfs-tools
      
      







ブートイメージを作成するxorriso

syslinux 、extlinuxでmbrブートを使用

圧縮ファイルシステムを作成するためのsquashfs-tools

システム自体を作成するlive-build 。これはクランプされ、isoイメージに配置されます。



イメージのカタログを作成し、選択したアーキテクチャの最小システムを解凍します。 chrootは、イメージが置かれるルートフォルダーです。



 mkdir ~/livework && cd ~/livework debootstrap --arch=i386 wheezy chroot
      
      







次に、作業システムをエミュレートするために必要なディレクトリをマウントしましょう。 UUIDを生成するには、dbus-uuidgenを設定します。 次に、カーネルとライブダウンロードに必要なユーティリティを配置します。 さて、それから私たちは自分自身に何も拒否しません。私たちは欲しいものをすべてインストールします。 Xをインストールし、これらのXをユーザーまたはルートとして起動できます。 後でディスクを作成したら、仮想マシンでテストできます。気に入らない場合は、chrootフォルダーにログインしてすぐにやり直します。



 cd ~/livework chroot chroot mount none -t proc /proc mount none -t sysfs /sys mount none -t devpts /dev/pts export HOME=/root export LC_ALL=C apt-get install dialog dbus dbus-uuidgen > /var/lib/dbus/machine-id apt-get install linux-image-686 live-boot apt-get install dump bzip2 mc icewm .... passwd apt-get clean rm /var/lib/dbus/machine-id && rm -rf /tmp/* umount /proc /sys /dev/pts exit
      
      







つまり、システムのイメージを作成しました。 次に、ライブブートローダー用のフォルダーを作成します。 作成したシステムのvmlinuzおよびinirdカーネルをそこにコピーします。 そして、chrootフォルダーから圧縮ファイルシステムを作成します



 mkdir -p binary/live && mkdir -p binary/isolinux cp chroot/boot/vmlinuz-* binary/live/vmlinuz cp chroot/boot/initrd.img-* binary/live/initrd mksquashfs chroot binary/live/filesystem.squashfs -e boot
      
      







次に、CDからダウンロードするために必要なファイルをコピーし、ブートメニューを編集します。



 cp /usr/lib/syslinux/isolinux.bin binary/isolinux/. cp /usr/lib/syslinux/menu.c32 binary/isolinux/. nano binary/isolinux/isolinux.cfg ui menu.c32 prompt 0 menu title Boot Menu timeout 300 label live-686 menu label ^Live (686) menu default linux /live/vmlinuz append initrd=/live/initrd boot=live persistence quiet label live-686-failsafe menu label ^Live (686 failsafe) linux /live/vmlinuz append initrd=/live/initrd boot=live persistence config memtest noapic noapm nodma nomce nolapic nomodeset nosmp nosplash vga=normal endtext
      
      







すべて準備完了です! あとは、ディスクイメージを作成するだけです。



 xorriso -as mkisofs -r -J -joliet-long -l -cache-inodes -isohybrid-mbr /usr/lib/syslinux/isohdpfx.bin -partition_offset 16 -A "Debian Live" -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o remaster.iso binary
      
      







ディスクの2回目の収集を開始するとき、binary / live / filesystem.squashfsファイルを削除します。削除しないと、コンピューターはギガバイトアーカイブに追加する必要があるものを長時間検出します。 そして、あなたは緊張し、新しい再構築を待っている間に頭の後ろを掻きます。

ライブワークフォルダーに、ディスクを再作成するときに実行するスクリプトがあります。



 rm binary/live/filesystem.squashfs mksquashfs chroot binary/live/filesystem.squashfs -e boot xorriso -as mkisofs -r -J -joliet-long -l -cache-inodes -isohybrid-mbr /usr/lib/syslinux/isohdpfx.bin -partition_offset 16 -A "Debian Live" -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o install.iso binary
      
      







フラッシュドライブに同じシステムイメージを作成する場合、これ以上簡単なことはありません。

唯一の違いは、ディスクイメージを作成する必要はありませんが、代わりにパーティションをシステムブート(fdisk)でマークし、mbrディスクのブート領域に書き込む必要があることです。 パーティションがEXTでフォーマットされている場合、isolinuxではなくextlinuxを使用して起動します。 この例では、ドライブは/ dev / sdaであり、システムイメージは/ mntにマウントされています



 extlinux -i /mnt && cat /usr/lib/extlinux/mbr.bin > /dev/sda cp /usr/lib/extlinux/*.c32 /mnt && cp /usr/lib/syslinux/vesamenu.c32
      
      







ブートメニューは、ISOではなくEXTを持っているため、ISOイメージから別のファイルにコピーできます。



 cp isolinux/isolinux.cfg /mnt/extlinux.conf
      
      







トピックから少し離れています。 ライブISOイメージは、安定していて可変ではないという点で優れています。 彼がRAMをロードするのは悪いことです。 圧縮イメージから自分を解放したい場合は、ダウンロードが変更されます。 したがって、圧縮されていないシステムのイメージがあり、そのロードを登録するだけの場合は、そのような構成を記述します。

 nano /mnt/extlinux.conf
      
      







ファイルの内容。 ここで### uuid ###はあなたのものに置き換えるか、例えばroot = / dev / sda1と書きます。

フルパスはカーネルに書き込まれ、リンクはチャネルしません。 繰り返しになりますが、ここでは少しトピックが異なります。構成は圧縮されたシステムではなく、通常のシステムに必要です。



 ui vesamenu.c32 prompt 0 timeout 300 menu title Boot Zagruzka menu color title 1;33;44 menu color sel 7;37;40 menu color unsel 33;44 menu color border 33;44 label Linux-Debian-686 kernel /boot/vmlinuz-3.2.0-0.bpo.2-686-pae append initrd=/boot/initrd.img-3.2.0-0.bpo.2-686-pae root=UUID=###uuid### ro quiet label Linux-Debian-686 (rescue mode) kernel /boot/vmlinuz-3.2.0-0.bpo.2-686-pae append initrd=/boot/initrd.img-3.2.0-0.bpo.2-686-pae root=UUID=###uuid### ro single
      
      







実際、圧縮されたLiveCDシステムに戻って、圧縮されたファイルシステムのあるディスクにフォルダーをコピーします。



 cp -R live /mnt
      
      







私は何も台無しにしないことを望みます。



All Articles