Linux.com

ceazar123

ceazar123

  • Linux.com Member
  • Posts: 6
  • Member Since: 27 Aug 10
  • Last Logged In: 01 Sep 10

Latest Posts

Posted by
Topic
Post Preview
Posted
  • ceazar123
    RE: To create a bootable iso of a self made distro
    I got it to work....:-), though there are some rough edges, which I shall try to smoothen. I already had the initrd image booting from the RAM, that gave me the busybox standalone shell. From this shell, I first mounted my hard drive to /root. Formatted it and changed the file system. Then I mounted my cd-rom to /mnt, which was after all a read only file system. Then I copied the contents of the /mnt to /root. Then I chroot-ed, into /root and that gave me a read write environment. So it's done. The only thing that needs to be done now is that after chroot-ing in /root, I need to run /sbin/init....which is not happening as of now. As a workaround I have create a bash script, that manually starts the processes I need. As it is a Firewall that I have made, I just start ssh, iptables, snort_inline, zebra...to name a few. Thanks and Regards, -=Srijan
    Link to this post 01 Sep 10

    I got it to work....:-), though there are some rough edges, which I shall try to smoothen.

    I already had the initrd image booting from the RAM, that gave me the busybox standalone shell. From this shell, I first mounted my hard drive to /root. Formatted it and changed the file system. Then I mounted my cd-rom to /mnt, which was after all a read only file system. Then I copied the contents of the /mnt to /root. Then I chroot-ed, into /root and that gave me a read write environment. So it's done.

    The only thing that needs to be done now is that after chroot-ing in /root, I need to run /sbin/init....which is not happening as of now. As a workaround I have create a bash script, that manually starts the processes I need. As it is a Firewall that I have made, I just start ssh, iptables, snort_inline, zebra...to name a few.

    Thanks and Regards,
    -=Srijan

  • ceazar123
    RE: Kernel Installation Problem.
    Hi Rahul, Can you tell what is the exact message that shows up? -=Srijan
    Link to this post 30 Aug 10

    Hi Rahul,

    Can you tell what is the exact message that shows up?

    -=Srijan

  • ceazar123
    RE: To create a bootable iso of a self made distro
    Hi Robin, I checked Remastersys out and it works well with Debian and Ubuntu. However, nothing much has been said about CentOS. I also tried a workaround to resolve my initial issue. I have already made a initrd.img and a compressed linux kernel image (vmlinuz). In the initrd image, I use a very small file system that contains essential files that aid boot up. I have also configured a standalone busybox shell that I use here in the initrd image. This small file system is loaded to the RAM at boot up time. After that I get a busybox shell prompt. Once I am here, I mount my cd-rom, that contains all the files and directories of my CentOS distro. Then I chroot into the mounted file system. My problem is that as the cd-rom contains iso9660 file system, which is essentially read only, some of my programs would not work as they require to touch certain files in /var and /tmp directories. As a workaround, what I have done is, after I chroot into the mounted read only file system, I mount /dev and /tmp on the RAM by the following commands; mount -t tmpfs tmpfs /var mount -t tmpfs tmpfs /tmp As soon as these directories are loaded onto the RAM, they become read write and I am able to access them. Verified that by "Touch-ing" some files. This works absolutely fine. A small glitch here is that as soon as I mount /var and /tmp as tmpfs, it removes the precious files there. So I have to manually recreate all the files needed. Can anyone point me a better/easier way to do the same. It would be very helpful as I have been on this issue for quiet some time, without a permanent solution. Thanks, -=Srijan
    Link to this post 30 Aug 10

    Hi Robin,

    I checked Remastersys out and it works well with Debian and Ubuntu. However, nothing much has been said about CentOS.

    I also tried a workaround to resolve my initial issue. I have already made a initrd.img and a compressed linux kernel image (vmlinuz). In the initrd image, I use a very small file system that contains essential files that aid boot up. I have also configured a standalone busybox shell that I use here in the initrd image. This small file system is loaded to the RAM at boot up time. After that I get a busybox shell prompt.

    Once I am here, I mount my cd-rom, that contains all the files and directories of my CentOS distro. Then I chroot into the mounted file system. My problem is that as the cd-rom contains iso9660 file system, which is essentially read only, some of my programs would not work as they require to touch certain files in /var and /tmp directories.

    As a workaround, what I have done is, after I chroot into the mounted read only file system, I mount /dev and /tmp on the RAM by the following commands;

    mount -t tmpfs tmpfs /var
    mount -t tmpfs tmpfs /tmp

    As soon as these directories are loaded onto the RAM, they become read write and I am able to access them. Verified that by "Touch-ing" some files. This works absolutely fine.

    A small glitch here is that as soon as I mount /var and /tmp as tmpfs, it removes the precious files there. So I have to manually recreate all the files needed. Can anyone point me a better/easier way to do the same. It would be very helpful as I have been on this issue for quiet some time, without a permanent solution.

    Thanks,
    -=Srijan

  • ceazar123
    RE: To create a bootable iso of a self made distro
    Hi Manko10, Yes, I am using ISOLINUX as the boot loader to create the iso image. Thanks, -=Srijan
    Link to this post 30 Aug 10

    Hi Manko10,


    Yes, I am using ISOLINUX as the boot loader to create the iso image.

    Thanks,
    -=Srijan

  • ceazar123
    RE: To create a bootable iso of a self made distro
    Hi masokis , I wish I could do it completely and give to you as a tutorial. However, at present, I am able to boot my distro, mount everything, however it is mounting as read only. And that too because, after booting up, I get a busybox shell. from there I mount the cd-rom drive and then chroot to the environment. As cd-rom's contain the iso9660 file system, it is always read only. I just need to get a workaround wherein, I can make the /var, /tmp folder as read write, keeping everything else intact. Thanks, -=Srijan
    Link to this post 30 Aug 10

    Hi masokis ,

    I wish I could do it completely and give to you as a tutorial. However, at present, I am able to boot my distro, mount everything, however it is mounting as read only.

    And that too because, after booting up, I get a busybox shell. from there I mount the cd-rom drive and then chroot to the environment. As cd-rom's contain the iso9660 file system, it is always read only. I just need to get a workaround wherein, I can make the /var, /tmp folder as read write, keeping everything else intact.

    Thanks,
    -=Srijan

  • ceazar123
    To create a bootable iso of a self made distro
    Hello Everyone, I have a CentOS Server, running 2.6.29. I have configured a small firewall, with iptables, snort_inline, zebra, keepalived etc. I wanted to make an iso image of my own distro, so that I can give it to my friends so that they can use a ready made Firewall. To accomplish this, I created an initrd image using busybox that has an init file. The contents of the init file is: #!/bin/nash mount -t proc /proc /proc setquiet echo Mounting proc filesystem echo Mounting sysfs filesystem mount -t sysfs /sys /sys echo Creating /dev mkdir /dev/shm mount -o mode=0755 -t tmpfs /dev/shm /dev/shm mkdir /dev/pts mount -t devpts -o gid=5,mode=620 /dev/pts /dev/pts echo Creating initial device nodes mknod /dev/null c 1 3 mknod /dev/zero c 1 5 mknod /dev/urandom c 1 9 mknod /dev/systty c 4 0 mknod /dev/tty c 5 0 mknod /dev/console c 5 1 mknod /dev/ptmx c 5 2 mknod /dev/rtc c 10 135 mknod /dev/tty0 c 4 0 mknod /dev/tty1 c 4 1 mknod /dev/tty2 c 4 2 mknod /dev/tty3 c 4 3 mknod /dev/ttyS0 c 4 64 mknod /dev/ttyS1 c 4 65 mknod /dev/ttyS2 c 4 66 mknod /dev/root c 3 1 mknod /dev/hdc b 22 0 mknod /dev/sda b 8 0 mknod /dev/sda1 b 8 1 mknod /dev/root b 8 1 echo Setting up hotplug. hotplug echo Creating block device nodes. mkblkdevs echo "Loading ehci-hcd.ko module" insmod /lib/ehci-hcd.ko echo "Loading ohci-hcd.ko module" insmod /lib/ohci-hcd.ko echo "Loading uhci-hcd.ko module" insmod /lib/uhci-hcd.ko mount -t usbfs /proc/bus/usb /proc/bus/usb echo "Loading scsi_transport_spi.ko module" insmod /lib/scsi_transport_spi.ko echo "Loading mptbase.ko module" insmod /lib/mptbase.ko echo "Loading mptscsih.ko module" insmod /lib/mptscsih.ko echo "Loading mptspi.ko module" insmod /lib/mptspi.ko echo "Loading usb-storage.ko module" insmod /lib/usb-storage.ko mkblkdevs echo My Shell /bin/sh Along with the initrd.img and vmlinuz, I have made an iso image. Once I boot the iso image, it gives me the busybox shell. However it is still in initramfs state. Then I try to mount the files in the iso to a /mnt directory and chroot to the environment according to this script: #!/bin/sh echo Creating a mount point mkdir /mnt echo Mounting the Root File System mount /dev/hdc /mnt ==> this mounts the iso image in the cd-rom to /mnt echo changing Root mount -o bind /proc /mnt/boot/proc/ mount -o bind /sys /mnt/boot/mnt/ export HOME=/root chroot /mnt/boot As I have a ram size of around 256Mb, mounting the entire contents of the cd in the ram and then copying from the ram would not be possible. I cannot do much as the file system mounted is read only. I need a read write environment, so that I can get things modified and certain files that uses /var can write to it. If possible can I have the entire file system as read only, however have certain directories such as /dev, /var, /proc as read write. Thanks and Regards, -=Srijan
    Link to this post 28 Aug 10

    Hello Everyone,

    I have a CentOS Server, running 2.6.29. I have configured a small firewall, with iptables, snort_inline, zebra, keepalived etc. I wanted to make an iso image of my own distro, so that I can give it to my friends so that they can use a ready made Firewall.

    To accomplish this, I created an initrd image using busybox that has an init file. The contents of the init file is:

    #!/bin/nash

    mount -t proc /proc /proc
    setquiet
    echo Mounting proc filesystem
    echo Mounting sysfs filesystem
    mount -t sysfs /sys /sys
    echo Creating /dev
    mkdir /dev/shm
    mount -o mode=0755 -t tmpfs /dev/shm /dev/shm
    mkdir /dev/pts
    mount -t devpts -o gid=5,mode=620 /dev/pts /dev/pts
    echo Creating initial device nodes
    mknod /dev/null c 1 3
    mknod /dev/zero c 1 5
    mknod /dev/urandom c 1 9
    mknod /dev/systty c 4 0
    mknod /dev/tty c 5 0
    mknod /dev/console c 5 1
    mknod /dev/ptmx c 5 2
    mknod /dev/rtc c 10 135
    mknod /dev/tty0 c 4 0
    mknod /dev/tty1 c 4 1
    mknod /dev/tty2 c 4 2
    mknod /dev/tty3 c 4 3
    mknod /dev/ttyS0 c 4 64
    mknod /dev/ttyS1 c 4 65
    mknod /dev/ttyS2 c 4 66
    mknod /dev/root c 3 1
    mknod /dev/hdc b 22 0
    mknod /dev/sda b 8 0
    mknod /dev/sda1 b 8 1
    mknod /dev/root b 8 1
    echo Setting up hotplug.
    hotplug
    echo Creating block device nodes.
    mkblkdevs
    echo "Loading ehci-hcd.ko module"
    insmod /lib/ehci-hcd.ko
    echo "Loading ohci-hcd.ko module"
    insmod /lib/ohci-hcd.ko
    echo "Loading uhci-hcd.ko module"
    insmod /lib/uhci-hcd.ko
    mount -t usbfs /proc/bus/usb /proc/bus/usb
    echo "Loading scsi_transport_spi.ko module"
    insmod /lib/scsi_transport_spi.ko
    echo "Loading mptbase.ko module"
    insmod /lib/mptbase.ko
    echo "Loading mptscsih.ko module"
    insmod /lib/mptscsih.ko
    echo "Loading mptspi.ko module"
    insmod /lib/mptspi.ko
    echo "Loading usb-storage.ko module"
    insmod /lib/usb-storage.ko
    mkblkdevs
    echo My Shell
    /bin/sh

    Along with the initrd.img and vmlinuz, I have made an iso image.

    Once I boot the iso image, it gives me the busybox shell. However it is still in initramfs state. Then I try to mount the files in the iso to a /mnt directory and chroot to the environment according to this script:

    #!/bin/sh

    echo Creating a mount point
    mkdir /mnt
    echo Mounting the Root File System
    mount /dev/hdc /mnt ==> this mounts the iso image in the cd-rom to /mnt
    echo changing Root
    mount -o bind /proc /mnt/boot/proc/
    mount -o bind /sys /mnt/boot/mnt/
    export HOME=/root
    chroot /mnt/boot

    As I have a ram size of around 256Mb, mounting the entire contents of the cd in the ram and then copying from the ram would not be possible.

    I cannot do much as the file system mounted is read only. I need a read write environment, so that I can get things modified and certain files that uses /var can write to it.

    If possible can I have the entire file system as read only, however have certain directories such as /dev, /var, /proc as read write.

    Thanks and Regards,
    -=Srijan

Who we are ?

The Linux Foundation is a non-profit consortium dedicated to the growth of Linux.

More About the foundation...

Frequent Questions

Join / Linux Training / Board