Read Write access to a iso9660 filesystem..mount a .iso image as read write
Hi Guys,
I have made a boot-able iso image which mounts vmlinuz and initrd.img into the RAM using initramfs. The initrd.img mounts a basic file system that takes me to a busybox shell. From this shell, I run a small shell scripts that is as follows: #!/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 After this it boots fine, and I can see my file system that is loaded on my cd (.iso image). However, this is a read-only file system and I am not able to do anything. I have already tried mounting a directory as tmpfs and binding a few directories to it, however it does not server my purpose. So, I am stuck with a read only file system. Please can anyone point me to the right direction of create a read write on the file system. Thanks and Regards, -=Srijan |
Quote:
Quote:
If you want to edit files in the .iso, or if you want to add files, you would have to mount the .iso, copy the files to a directory and make the directory read/write (recursively), then do your edits/file additions. After all that, remake the .iso. |
Hi bigrigdriver,
Actually 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 Here, 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. Thanks and Regards, -=Srijan |
All times are GMT -5. The time now is 03:32 AM. |