Software :: Make Initrd That Contains Root File System?
May 19, 2010
I am attempting to PXE boot Redhat 5.4 and load the OS into RAM. Here is how far I have gotten so far:
I have successfully configured my DHCP, TFTP, and PXE servers. The PC that is booting up Redhat 5.4 is able to get a DHCP IP address from the server, grab the kernel and initrd from the TFTP server, and boot up from there. I have this setup working if I store the root file system on a NFS share on the server and use the kernel's NFSROOT parameter. Long story short, I now need to get this same setup working without using NFS if possible. I have spent several hours google searching how to create a RAM disk (initrd) that also contains the root file system. I must be searching the wrong keywords. Anyway, based on what I have read so far, I need to do the following:
1. I need to pass different kernel parameters. It needs to look something like:
2. It seems like newer versions of initrd are created using the cpio tool. So would this simply be a matter of booting to my hard drive that has Redhat 5.4 loaded on it and running:
To create the RAM disk with a root file system attached to it? I have a feeling it has to be more complicated than that but I just cannot find any sites that specifically explain what would be involved with creating an initrd file that can also be used as the root file system.
3. Would I need to modify the init script (many sites call it "linuxrc") at all in order to accomplish what I want to do? For example, I found this site:[url]
My understanding of this page is that you have to create a linuxrc script that basically does the work of decompressing the file system into /dev/ram0 and mounting it to /root. Is something like this actually needed?
4. The kernel must have certain parameters set such as enabling RAM disk support.
I have most of this setup working. I just need to figure out how to basically store the contents of the OS on the TFTP server and then tell the kernel to load that OS into memory. Based on what I have read, this should be possible (otherwise, how do Live CD's work?).
When I compile a custom kernel with this command: make-kpkg --initrd kernel_image kernel_headers and then install the .deb, there's no initrd in /boot and I have to create it manually. I've thought that the --initrd option should take care about this, but somehow it doesn't.
It behaves like this for about two years at least (since I've compiled my first kernel). Of course, it's no big deal to create it manually, I was just wondering whether do I do anything wrong or whether should I fill a bug report..
I have compiled the linux kernel. My bzImage is 1,14 mb big
Anyway. It's only 2 programs i need and it's Python and Busybox. I have compiled python and busybox and put them together in a folder. Busybox is 146 kb and pyton is 4,4 mb.
But how do i make an initrd file of them? Or should a make an initrd file of them?
I get this error when a runt with a compiled busybox to gz format as initrd, and without initrd.
Quote:
VFS: Cannot open root device "sda1" or unknow-block(0,0) Please append a correct "root=" boot option; here are the available partions: Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)Pid: 1, comm: swapper Not tainted 2.6.38.3 #1
I am interested in making the root file system is read-only. I've moved /var and /tmp file systems to another partitions. There are two files in the /etc directory that need to be writable.
These are:
I've moved this files to /var and linked it. I've added command to the /etc/rc.d/rc.local file:
That's it. Are there other solutions to make the root file system is read-only?
I've been trying to install ubuntu 11.04 64 bit on a partition next o windows 7 64 bit.When I use the default option (no matter how large I make the partition) I get the error message that not enough space could be created. I read this could e solved by defragmenting the hard drive which I did, but the problem persists.I next tried to partition manually but go the error message that there was "No root file system is de or something similar
Running Squeeze here. I added a new SSD to my system. Root is /dev/sda3 and I want to clone that system to the new SSD on /dev/sdb1 and make it bootable. I tried:
mount /dev/sdb1 /mnt/ssd_root cp -dpRx / /mnt/ssd_root
but to no avail. I cannot get the new system to be bootable and available through Grub. Part of the problem is that I do not know my way around Grub v2 so well, I could probably manage quite well with legacy grub. So, whats the easiest way to clone a system and make it bootable on another partition? Should I be using debootstrap, and importing/exporting the package list to install the same packages on the new system as the old? or is using cp -dpRx to copy the old ok? How do I make the new system boot?
Remember back in the days of MS-DOS, a file could have 4 different attributes: archive, read-only, hidden, system. As you know, MS-DOS didn't have any user rights or privileges. Files had no owner. If you were at the command line, you could do whatever you wanted, you could change or delete any files you wanted to... so long as they weren't read-only. Under MS-DOS, if you had a read-only file and tried to delete it, you would get an error saying "Cannot delete read-only file". There was a simple remedy to this, just turn off the read-onlyness:
Code:
attrib -r hello.txt
The point I'm trying to make here is that even though you had full permissions over the file, you still had to turn off its read-onlyness before you could make a change. Well I'm trying to do something similar in Linux. Under Linux, the root user has full permissions over every file. But I need to make a particular file read-only so that not even the root user can alter it. I have a few programs on my computer that need to be run as root because they do some low-level networking (raw sockets and the like), and these programs alter my "/etc/resolv.conf" file. Well I need to find a way of making my "/etc/resolv.conf" file READ-ONLY, even for the root user. It doesn't seem as though the Linux filesystem provides a means of doing this, reason being that the root user will always be able to alter any file it wants to. I was thinking though... there's some way I could turn my "/etc/resolv.conf" file into a virtual file of some sort, like maybe I could use some sort of mount program to mount the file as read-only... ?
I work for a company that makes portable devices running Linux and I was recently asked to make the underlying file system read-only for "security" purposes. Since the distribution is based on LinuxFromScratch, I know that very little writing happens at run time. So, even if the device runs on a usb flash device, I doubt that putting the root file system RO will be that beneficial. I am actually more concerned about a process actually breaking because it cannot open a file in RW mode than a process going rogue and filling the root file system with log files, etc. I'd really like to ear what kind of advantages disadvantages there really is with read-only file-systems.
The only user that can make the sound card work on a F10 x86_64 system is root. For non root users, I am not seeing any error messages when a app tries to use/access the sound card, just nothing plays. As I said, for root everything works as expected. I am sure this is a permission/setup issue, but I have no idea where to start.
I install fedora on my usb-hdd. Sometimes i boot it from real machine, sometimes i boot from virtual machine (kvm). When I boot from real machine, hdd driver is usb-storage, when i boot from virtual machine hdd drivers are ata_generic and pata_acpi.
Everytime i update kernel, mkinitrd only create initrd image contains only hdd driver current running, and I must recreate initrd manual with all preload hdd driver. How to config fedora to everytime update kernel, mkinitrd can make initrd image with all hdd driver I need?
I have an encrypted root and encrypted boot drive... To avoid entering a passphrase multiple times I'd like to add a keyfile for my root drive to my initrd... I've done this in Arch and it was relatively simple but I've hit a road block in debian finding the analog processes...
Code: Select all#Part 1) Generate the keyfile, give it suitable permissions and add it as a LUKS key:
well i was messing with the Gparted live disk and i deleted a small partition of about 6 megs (yes megs). trying to be efficient doing some cleanup of course. but when i rebooted my Fedora 10 i get the black screen saying," could not find the file system. /dev/root". ok, i am useing the fedora 10 live cd now. can i copy that file to my hard drive from the cd? or do i need to reinstall Fedora?
I have worked in linux for a long time but never managed the system until I got my own server, which is running Fedora 14. I have a 3 TB Drive and apparently can only handle 2 TB. At least the Disk Analyzer is telling me that 2TB is 100% max capacity. Also viewing disk analyzer, I am only using 50GB of my 2TB but I am out of memory in the Root file system. If I run df -h, I get he following:
Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_dev1-lv_root 50G 40G 7.2G 85% /
I have been using Ubuntu 9.10 Desktop version for around 1 month then i stoped using after installing windows 7, as I knew that there were the 10.04 version coming. So when it was released i went to torrent download the file and burned it on a cd. After that i insert the cd and use the wubi installer in there as i want to install them side by side. so after installing ubuntu i restarted the system and got into it. After a few minutes it appeared this error message "Not root file system is defined. Please correct this from the partitioning menu." So i was expecting it to be downloading problems. I went on to ubuntu website requested for a CD and it came today. So i inserted the cd did the same thing again.
Is it possible to run fsck on the root file system? My Ubuntu 10.04 seems to be checking it's fs at boot... It shows that the file system is in use and can get severely damaged! Or the only possibility is to run it from a live CD?
My current installation setup has a separate partition for /, /boot, /home, /tmp, /usr, and /var. The problem I have is the root partition / is 98% full (4.3GB full). Cleaning temp files and log files won't help since they are on their own partition (and clean). I've removed all but two linux-images. Linux images seem to run at a size of roughly 105M. My root partition is 4.6GB. I can't seem to find any other options for cleaning up space on this partition. I have no idea what is taking up 4.6GB of space.
Disk Usage Analyzer has not been helpful since I have not been able to reconcile 4.6GB of memory with what it claims the total size of the remaining directories occupy. I've tried localepurge, gtkorphan, apt-get clean, apt-get autoclean, apt-get autoremove. I've removed all packages listed under Status -> Not Installed in the package manager. My root file system is still 98% full (4.3GB full).
Classic partition problem apparently. What do I do? the 11.04 wubi doesn't give a lot of installation options, so i just selected C drive, and gave it 10GB of space. instilled it, and when it goes to the desktop menu, that pop up appears saying No root file system is defined. Please correct this from the partitioning menu
I'm trying to install 11.04 and get the error warning in the title. It says "Please correct this from the partitioning menu."How do I do that?I don't see any options for that.Puppy will already boot from that device and has grub installed.
I am getting an error while booting my linux system: Can't mount root file system.Boot has failed, sleeping forever.OS is Red hat enterprise linux 6, With Intel P4, 1 GB Ram, 120 GB IDE hdd seagate. it was working fine from last 4 days. from today morning this is giving error. only mysql & apache is installed in it. please suggest is there any way to repair the root & boot volumes. waiting for valuable reply.
Is it possible to encrypt the Entire root file system using LUKS.I am currently using Ubuntu 10.4 LUCID.After several hours of Google ,most of the articles were focusing to "Encrypting a drive/removable media ".. My aim is to encrypt whole File system which is currently using.
My Concerns, How to Encrypt a running file system? Will it lead to data loss?
im trying to prepare my partitions for fresh installation. The partition manager didnt list anything with an error message that said:Quote:No root file system is defined. Please correct this from the partitioning menu?This is what Gparted displays Quote:
I would like to know if there is a way to do an unattended check on the root file system on my servers, *and* send emails in case of errors.
I know you can schedule a root file system fsck during boot time - but the root file system will be mounted read-only - so if fsck finds any problems - it can't email away a warning, or write the result to a file - or can it?
Essentially I would like my servers to do a self-check of the root file system periodically - and to email me if it fails. I just can't think of a way to get it done.
I have a problem that is probably simple, but have not yet found the answer on any forums or by Googling. First my system specs:Tyan 2610 motherboard w/ 2 x PIII 9334 gig PC133 SDRAM 1 x 5 gig hd (system)4 x 500 gig hds w/ 3Ware 7500 controller set to RAID 5, (1.5 TB) mounted as /homeCentOS 5.3 running my smb and nfs mountsMy problem is that I have run out of space on my / (root) file system, (the 5 gig). Since I am planing to rebuild my file server with larger hard drives, (2 x's 60 gig SATA's set to RAID 1, 6 x's 1.5 TB at RAID 5), within the next 2 months, I would like to try to clean out any unneeded crap rather than adding a hard drive and expanding my root file system. I have done the following:
Removed old unused kernels cleaned up /var/log/ cleaned up /tmp
I have had this problem since yesterday, I've looked around at previous archives, but I can't seem to find anything that works. When I boot up, the screen gives me the following prompt:
Code: Mount of root filesystem failed. A maintenance shel will now be started. CONTROL-D will terminate this shell and reboot the system. Give root password for maintenance:
So I have an external hard drive (wd passport) that I want to install ubuntu on. I created 100gb partition via diskutility (fat32) and it seems I can't install ubuntu on this partition.
I would like to start off by saying this: I am very new to Linux, and this is my first time installing it, therefor I am having some very newb-like issues. Please bear with me.I am currently at step five of the installation process of Ubuntu, and I clicked on the partition which I have set aside to install Ubuntu onto, but when I proceed by hitting forward, I get the following error message:"No root file system is defined.Please correct this from the partitioning menu."My question to the community is, how would I correct that? How do I turn my 20GB partition into the root file system?P.S. I searched the forum for this issue, and being that it sounds so simple, yet I found nothing about it being previously asked, I feel sort of dumb....
When I tried to install 10.10 'side by side' with 10.04 and OpenArtist for triple booting I get the messageQuote:No root file system is defined. Please correct this from the partitioning menu.I don't have the screen in front of me now but what5 does it want me to do and how do I do it?
I'm having a problem and it seems like partitions during the dual boot install.
Here's EXACTLY what I get...
Menu: Allocate drive space Erase and use entire disk X Specify partitions manually (advanced) [X denotes I chose this option]
I have 3 partitions on my gateway laptop...
[graphical bar across the top] sda1 NTFS - 10g - weird partition w/recovery software or something from Vista sda2 NTFS - 140g - Windows Vista 47g FREE SPACE [this is where I want ubuntu]
[Code].....
I click "Install Now" and I get this error:
"No root file system is defined. Please correct this from the partitioning menu."