ライブDebian

すべての人に良い一日を!



状況を想像してください。Debianを実行し、適切に調整され、デバッグされたシステムがあります。 ある時点で、このシステムをHDDにインストールして、USBフラッシュドライブまたはCD-ROMから起動し、読み取り専用モードで動作させたい場合があります。 このようなソリューションの典型的なアプリケーションは、さまざまな街頭キオスクまたはシンクライアントであり、その状態は再起動のたびに元の状態にリセットされます。



今日は、同様の結果を達成する方法についてお話したいと思いますが、最初に少し理論を説明します。

ご存知のように、HDDにインストールされるLinux Debianオペレーティングシステムは4つのかなり独立したコンポーネントで構成され、それぞれを好みに合わせて選択またはカスタマイズできます。



1.ブートローダーはBIOSの後に実行され、Debianをロードします。 デフォルトでは「GRUB」が使用されますが、他のものも使用できます。 Syslinuxを使用します。 USBフラッシュドライブ、CD-ROM、およびネットワーク経由でOSをロードできます。

2.カーネルまたは「コア」はOSの中心部分であり、その周りですべてが回転します。 ディストリビューションに付属しているものを使用します。

3. initrd-カーネルがRootFSを見つけるのに役立つ中間ファイルシステム。 幸いなことに手動ではなく、少しの修正が必要です。

4. RootFS-ルートFS。 これは、OSがROモードで起動できるように変換する必要があるものです。



興味のあるすべてのプログラムとパッケージを備えたシステムをすでにお持ちであると考えています。 すべてを処理するスクリプトの動作を分析してみましょう。

#!/bin/bash #      initrd   "/boot",   ,      VMLINUZ="vmlinuz-3.2.0-4-amd64" INITRD="initrd.img-3.2.0-4-amd64" ISO="iso"<source lang="bash"> #   ,      : apt-get install squashfs-tools apt-get install live-boot live-boot-initramfs-tools apt-get install mtools syslinux dosfstools #       [ -d /$ISO ] && rm -rf /$ISO mkdir /$ISO mkdir /$ISO/binary mkdir /$ISO/binary/live mkdir /$ISO/binary/syslinux mkdir /$ISO/fscopy #    RootFS       tar -cpf - --directory=/ --exclude=proc --exclude=sys --exclude=dev/pts --exclude=boot --exclude=$ISO . | tar xf - -C /$ISO/fscopy/ rm -r /$ISO/fscopy/tmp/* /$ISO/fscopy/var/tmp/* rm /$ISO/fscopy/var/cache/apt/archives/*.deb rm /$ISO/fscopy/etc/udev/rules.d/*-persistent-net.rules rm /$ISO/fscopy/initrd.img /$ISO/fscopy/vmlinuz > /$ISO/fscopy/etc/fstab mkdir /$ISO/fscopy/proc mkdir /$ISO/fscopy/sys mkdir /$ISO/fscopy/dev/pts #   RootFS    squashfs mksquashfs /$ISO/fscopy/* /$ISO/binary/live/filesystem.squashfs #    initrd    cp /boot/$INITRD /$ISO/binary/live/initrd.img cp /boot/$VMLINUZ /$ISO/binary/live/vmlinuz #    "syslinux.cfg"   Syslinux cat > /$ISO/binary/syslinux/syslinux.cfg <<EOF CONSOLE 0 default linux label linux kernel /live/vmlinuz append initrd=/live/initrd.img boot=live quiet splash noconfig ro EOF #  ,     "/iso/binary/"  ,     dd     #  ,        "/iso/binary/" # /iso/binary/live/vmlinuz —  # /iso/binary/live/initrd.img — initrd,        Squashfs # /iso/binary/live/filesystem.squashfs — RootFS    # /iso/binary/syslinux/syslinux.cfg —    dd if=/dev/zero of=/$ISO/Debian_ro.img bs=10M count=35 LOFI=`losetup -f` losetup $LOFI /$ISO/Debian_ro.img mkdosfs -I $LOFI syslinux $LOFI TMP_DIR="/tmp/$$" mkdir $TMP_DIR mount $LOFI $TMP_DIR cp -r /$ISO/binary/* $TMP_DIR umount $TMP_DIR; rm -r $TMP_DIR losetup -d $LOFI #       "Debian_ro.img",      
      
      







便利なリンク:



FS Squashfsの機能に関するロシア語のかなり詳細な説明: ru.wikipedia.org/wiki/Squashfs

カーネルに渡すことができるすべての追加パラメーターの説明: live.debian.net/manpages/2.x/en/html/live-boot.7.html



PS十分な数の人々が集まっている場合、トピックは「Live CentOS」および「Live Solaris 10」という記事で継続できます。



All Articles