Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
soc:2009:pravin:journal:ubuntubko [2009/06/25 15:43]
less1
soc:2009:pravin:journal:ubuntubko [2009/07/27 05:26] (current)
less1
Line 22: Line 22:
 [  3.284007] ​ ..MP-BIOS bug: 8254 timer not connected to IO-APIC [  3.284007] ​ ..MP-BIOS bug: 8254 timer not connected to IO-APIC
 </​code>​ </​code>​
-and freezes.+and freezes.\\ 
 +I am using following version of qemu  
 +<​code>​ 
 +$ qemu 
 +QEMU PC emulator version 0.10.0, Copyright (c) 2003-2008 Fabrice Bellard 
 +</​code>​ 
 +The BIOS number was found  
 +and BIOS version used by qemu is as follows 
 +<​code>​ 
 +QEMU BIOS - build: 08/15/08 
 +$Revision: 1.209 $date: 2008/06/02 20:08:10$ 
 +</​code>​ 
 + 
 +I had to update my qemu to version 0.10.5 then it started working 
 +<​code>​ 
 +$ qemu 
 +QEMU PC emulator version 0.10.5, Copyright (c) 2003-2008 Fabrice Bellard 
 +</​code>​ 
 +===== SQUASHFS error ===== 
 + 
 +I am getting following errors in the process of booting. My guess is, most of these 
 +errors are related to failure of httpfs in providing requested logical block, but I need to confirm this. 
 +<​code>​ 
 +Buffer I/O error on device loop0, logical block 272374 
 +SQUASHFS error: sb_bread is failed reading block 0x845d5 
 +SQUASHFS error: unable to read fragment cache block [211696cb] 
 +SQUASHFS error: unable to read page, block 211696cb, size c115 
 +</​code>​ 
 +I have seen this error before, but if I retry the booting then it works. 
 +But now, I have failed two consecutive time on local webserver, which is quite alarming. 
 + 
 +====== Ubuntu revisited (in way of debian) ====== 
 + 
 +I was preparing to write an email to ubuntu mailing list, here is what I assembled for that email 
 +<​code>​ 
 +I have tried booting Knoppix and debian over HTTP, and they work fine. 
 +But I have problem in booting Ubuntu (ubuntu-9.04-desktop-i386.iso) over HTTP. 
 + 
 +The procedure followed to boot linux over HTTPFS by me is as follows. 
 +I get hold of ISO of live CD, and get the kernel, initramfs and  
 +filesystem.squashfs from it. 
 +I host ISO of live CD and "​filesystem.squashfs"​ on webserver. 
 +I modify initramfs to include httpfs and related tools and modules. 
 +I modify "/​init"​ ( "/​scripts/​casper"​ in case of ubuntu ) to use httpfs  
 +for mounting.  
 +I pass boot parameter "​httpfs=http://​ip-of-webserver/​filesystem.squashfs"​  
 +or "​httpfs=http://​ip-of-webserver/​ubuntu-9.04-desktop-i386.iso"​ 
 + 
 +I have attempted booting with both livecd.iso and filesystem.squashfs. 
 +In both cases, I get different errors. 
 + 
 +I know that filesystem is getting mounted with HTTPFS.  
 +I have verified it from the rescue shell. 
 +I get this rescue shell by executing wrong command in initramfs.  
 + 
 + 
 +When I mount "​ubuntu-9.04-desktop-i386.iso"​ I get following error 
 +{{{ 
 +Buffer I/O error on device loop0, logical block 272374 
 +SQUASHFS error: sb_bread is failed reading block 0x845d5 
 +SQUASHFS error: unable to read fragment cache block [211696cb] 
 +SQUASHFS error: unable to read page, block 211696cb, size c115 
 +}}} 
 + 
 + 
 +Then I tried to use debian way of mounting "​filesystem.squashfs"​ for booting. 
 +I get error 
 +{{{ 
 +Begin: Running /​scripts/​init-bottom ... 
 +Done. 
 +run-init: nuking initramfs contents: Directory not empty 
 +Kernel panic - not syncing: Attempted to kill init! 
 +Dumping ftrace buffer: 
 + (ftrace buffer empty) 
 +}}} 
 + 
 + 
 +My guess is that, this error is triggered because when "/​bin/​run-init"​  
 +tries to remove initramfs and fails to remove some file. Most probably it  
 +can be /dev/loop0 as it is in use by loopback mount command. 
 + 
 +I checked debian code, the use of loopback is avoided there. 
 +So, I am doing the same for ubuntu now.  
 +I wont use loopback and see if it works. 
 + 
 + 
 + 
 +I was wondering what I am doing wrong as the same method works fine with debian. 
 +And when I try to mount ISO itself, I get kernel panic 
 + 
 +</​code>​ 
 + 
 +Got some information about this error on [[http://​wiki.debian.org/​initramfs/​More|debian wiki]] 
 +which says that 
 +<​code>​ 
 +When switching another root device, initrd would pivot_root and then umount the ramdisk. But initramfs is rootfs:  
 +you shouldn'​t pivot_root rootfs and can't unmount it. Just delete everything out of it (except the new block device node, if any), 
 + ​overmount /, and exec the new init. (The klibc package contains a helper program in utils/​run_init.c to do this for you,  
 +and other packages have adopted this as switch_root.)  
 +</​code>​ 
 + 
 +Now, I don't know for sure, which files are not getting deleated and hence causing problem. 
 + 
 +==== A question ==== 
 +what is the differnece between debian script and ubuntu script that filesystem.squashfs is not working with ubuntu, but it works with debian? 
 + 
 +   - comparing ''​d/​scripts/​live''​ with ''​u/​scripts/​casper''​ --- too different, diff went crazy with this command. ​ They are as good as seperate program who do similar work. 
 +   - comparing ''​d/​bin/​run-init''​ with ''​u/​bin/​run-init'',​ --- they are same. 
 +   - comparing ''​d/​init''​ with ''​u/​init''​ -- not much of difference 
 + 
 +This approach is not working for me, I will try another approach. 
 + 
 +==== analyzing run_init.c ==== 
 +My guess is that, run_init.c is the one who is dying, and it seems he does allow you to specify the files which should not be deleted. 
 +I want to see how to tell that to run_init.c 
 +  - Another thing that I want to try out is, what if I dont delete the contents of initramfs? I will remove that check from run_init.c will system still boot? 
 +    - My guess is that, ''​overmount /''​ may fail. 
 +  - Now, I need to locate the source code of run_init.c 
 + 
 +===== Ubuntu over iscsi ===== 
 +  - Following the line of [[BKODebianISCSI|Debian over iscsi]], attempted the Ubuntu over iscsi, but it did not worked. 
 + 
 + 
 +===== Problem found ===== 
 +  - From the progress in fedora, it seems that problem is because network is restarting itself, which kills the the network and mounted HTTPFS. ​ Culprits are  
 +    - ''/​etc/​init.d/​network''​ 
 +    - ''/​etc/​init.d/​NetworkManager''​ 
 + 
 +===== Solution ===== 
 +The temporary hack implemented is **Delete these two files** before doing ''​run-init''​. ​ This hack works fine in this case, only problem is that the ''/​etc/​resolver.conf''​ 
 +entry remains empty so dns resolving does not work.  Need to fix this soon. 

QR Code
QR Code soc:2009:pravin:journal:ubuntubko (generated for current page)