Home › Forums › GeeXboX for PC › [ solved ] Howto install it in HDD?
Tagged: HDD casper persistent
This topic contains 40 replies, has 8 voices, and was last updated by
tomlohave 4 years, 9 months ago.
-
AuthorPosts
-
October 27, 2011 at 03:37 #1482
Originally, I have tested the method stated in the Documentation area, that works. I added the casper-rw file and add args in the GRUB. But I cannot save my configurations(say, change the font).
I found out that the file rootfs can be mounted in Fedora, it actually the whole system. After copying those files into geexbox partition with -pr option, and remove rootfs, the vmlinuz said he cannot file the root…
I just wanna save changes and hope to modify them in another OS(in case the system is down.) Any suggestions?
btw, how to compile the source? Under Fedora 15
-
October 27, 2011 at 03:44 #1483
x64 or i386 ?
if i386, replace your initrd by this one : http://download.geexbox.org/releases/extra/initrd
Now it should workcompile the source ? the entire geexbox distribution ? see openbricks.org for that.
-
October 28, 2011 at 03:18 #1494
arch = i386
nope…it is still not working. Error indicates current root is not in splashfs format.
-
October 28, 2011 at 03:34 #1495
try this latest iso :http://download.geexbox.org/releases/extra/i386/latest-iso-devel.iso
No time to build an x86_64 one -
November 23, 2011 at 01:52 #1711
I met the same problems and therefore I make a patch for init file in initrd.
1. put all geexbox files into /GEEXBOX directory including rootfs
2. add grub menu
title GEEXBOX
root (hd0,1)
kernel /GEEXBOX/vmlinuz vga=789 persistent loglevel=3 live-path=GEEXBOX root=/dev/sda2
initrd /GEEXBOX/initrd.xz“live-path” is my new parameter in init file.
3. patch init in initrd
diff -uN mnt2/init mnt/init
— mnt2/init 2011-09-16 01:32:12.000000000 +0800
+++ mnt/init 2011-11-23 15:27:34.954000159 +0800
@@ -31,6 +31,9 @@
data=*)
DATA=”${arg#data=}”
;;
+ live-path=*)
+ LIVE_PATH=”${arg#live-path=}”
+ ;;
init=*)
INIT=”${arg#init=}”
;;
@@ -50,8 +53,8 @@
# try to mount the rootfs specified in cmdline…
if [ -n “$ROOT” ]; then
dbg_echo -n “Trying root=$ROOT as requested…”
- if mount -o ro $ROOT /mnt >/dev/null 2>&1; then
- if mount -t squashfs /mnt/rootfs /squashfs >/dev/null 2>&1; then
+ if mount -o rw $ROOT /mnt >/dev/null 2>&1; then
+ if mount -t squashfs /mnt/$LIVE_PATH/rootfs /squashfs >/dev/null 2>&1; then
dbg_echo “found.”
else
dbg_echo “failed, cannot mount squashfs.”
@@ -86,7 +89,7 @@
continue
fi
fi
- if mount -t squashfs /mnt/rootfs /squashfs >/dev/null 2>&1; then
+ if mount -t squashfs /mnt/$LIVE_PATH/rootfs /squashfs >/dev/null 2>&1; then
dbg_echo “found.”
FOUND_ROOTFS=yes
break
@@ -110,7 +113,7 @@# setup aufs
if [ “$PERSISTENT” = yes ]; then
- DATA=/mnt/casper-rw
+ DATA=/mnt/$LIVE_PATH/casper-rw
PERSISTENT_OPT=”-o loop -t ext2″
[ ! -f “$DATA” ] && unset DATA && unset PERSISTENT_OPT
fi -
November 23, 2011 at 07:40 #1717
you can test this one : http://download.geexbox.org/releases/extra/i386/latest-iso-devel.iso
just add root=your_disk persistent=/directory_to_casper_rw/casper-rw -
December 5, 2011 at 10:53 #1983
Hello,
I’ve the same/similar problem: I can start GEEXBOX from HDD without any error, but I can’t store any changes.
File system: ext4
Grub2 bootloader
rootfs in / (sda1)
casper-rw in / (sda1)
initrd (558,1kb-version) & vmlinuz in /GEEXBOX/menuentry ‘Gee 2.0a'{
set root=(hd0,1)
linux /GEEXBOX/vmlinuz root=/dev/sda1 quiet splash
initrd /GEEXBOX/initrd
}I’ve tied the parameter persistent-/casper-rw, but I get error messages like this:
linux /GEEXBOX/vmlinuz root=/dev/sda1 persistent=/casper-rw quiet splash
Error message
aufs test_br: 179 ….
mount /newroot failedThe file casper-rw: owner root rw; group root readonly; others readonly
Thanks for help
Eduard
-
December 5, 2011 at 13:30 #1984
regular i386-iso ?
initrd from http://download.geexbox.org/releases/extra/initrd ?
If you really want to install it to hdd (not with rootfs etc) try this iso : http://download.geexbox.org/releases/extra/i386/latest-iso-devel.iso -
December 6, 2011 at 10:32 #1992
its regular I386-iso (Ubuntu 11.04) 32-bit system in parallel ; HDD = TS32GSSD25S-M:
I’ve installed the “latest-iso-devel.iso” and initrd
I’ve copied the “rootfs” file into /menuentry ‘Gee 2.0c'{
set root=(hd0,1)
linux /GEEXBOX/vmlinuz root=/dev/sda1 quiet splash
initrd /GEEXBOX/initrd
}
without persistent parameter I get following messages during startup:
could not open framebuffer: No such file or directory
- EXT3-fs (sda1): error: couldn’t mount because of unsupported optional features (240)
- EXT2-fs (sda1): error: couldn’t mount because of unsupported optional features (240)
XBOX starts, but no change permanentmenuentry ‘Gee 2.0d persistent'{
set root=(hd0,1)
linux /GEEXBOX/vmlinuz root=/dev/sda1 persistent=/GEEXBOX/casper-rw quiet splash
initrd /GEEXBOX/initrd
}
with persistent I get following:
- could not open framebuffer: No such file or directory
- EXT3-fs (sda1): error: couldn’t mount because of unsupported optional features (240)
- EXT2-fs (sda1): error: couldn’t mount because of unsupported optional features (240)
- aufs test_br:173:mount write permission …
- mount: mounting none on /newroot failed: invalid argument …
- Cannot mount aufs, dropping to shell
- BusyBox v1.19.2 -
December 6, 2011 at 12:40 #1993
fstype for your disk ?
under ubuntu, what says
cat /proc/mounts -
December 6, 2011 at 14:23 #1994
cat /proc/mounts
Result:
rootfs / rootfs rw 0 0
none /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0
none /proc proc rw,nosuid,nodev,noexec,relatime 0 0
none /dev devtmpfs rw,relatime,size=893524k,nr_inodes=215433,mode=755 0 0
none /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0
fusectl /sys/fs/fuse/connections fusectl rw,relatime 0 0
/dev/disk/by-uuid/a4488ca6-aa7d-44e8-92c8-96a3e5fe8610 / ext4 rw,relatime,errors=remount-ro,barrier=1,data=ordered 0 0
none /sys/kernel/debug debugfs rw,relatime 0 0
none /sys/kernel/security securityfs rw,relatime 0 0
none /dev/shm tmpfs rw,nosuid,nodev,relatime 0 0
none /var/run tmpfs rw,nosuid,relatime,mode=755 0 0
none /var/lock tmpfs rw,nosuid,nodev,noexec,relatime 0 0
binfmt_misc /proc/sys/fs/binfmt_misc binfmt_misc rw,nosuid,nodev,noexec,relatime 0 0
gvfs-fuse-daemon /home/loewe/.gvfs fuse.gvfs-fuse-daemon rw,nosuid,nodev,relatime,user_id=1000,group_id=1000 0 0Thanks for the help
-
December 7, 2011 at 00:35 #1995
i didn’t carefully read your post, geexbox boot without persistent so add “rw” should work
all my files are in /geexbox : rootfs, initrd, vmlinuz and casper-rwmy grub.cfg :
menuentry “Geexbox” {
set root=(hd0,1)
linux /geexbox/vmlinuz root=/dev/sda1 rootfs=/geexbox/rootfs persistent=/geexbox/casper-rw rw
initrd /geexbox/initrd
} -
December 8, 2011 at 10:04 #2018
Thanks @tomlohave,
you were right; the rw was missing, now it’s working.Eduard
-
December 23, 2011 at 16:35 #2300
@tomlohave, thanks much for the information. It was super easy to get geexbox 2 devel running next to geexbox 1 on an existing NTFS partition. I already had geexbox 1 with grub4dos installed through windows installer. So I:
* created a GEEXBOX2 directry
* put initrd, vmlinuz, rootfs, casper-rw in c:\GEEXBOX2
* added an entry in the existing c:\GEEXBOX\boot\menu.lst :
title Start Geexbox 2
kernel=/GEEXBOX2/vmlinuz root=/dev/sda1 rootfs=/GEEXBOX2/rootfs persistent=/GEEXBOX2/casper-rw rw boot=
initrd=/GEEXBOX2/initrdIt started just fine and casper-rw is used. After one reboot I see settings are kept. But on shutdown and reboots I see umount errors that go too fast to read them. On the next reboot settings are lost, I assume casper-rw becomes corrupted. Any idea how to fix the shutdown process?
-
December 23, 2011 at 16:44 #2301
Confirmed here also. After more than one reboot, ext2_lookup: deleted inode referenced errors occur and drops to shell and then dies.
-
December 24, 2011 at 04:49 #2308
ok, i will test the shutdown script.
-
December 24, 2011 at 07:44 #2310
should be solved with commit r13683 http://hg.openbricks.org/openbricks/rev/aa01dcf37358
-
December 25, 2011 at 14:37 #2321
@tomlohave: thanks for looking into that problem. Is there a place with snapshot with your changes? Latest thing I can see on the download server is before this commit.
Unfortunately I couldn’t test the changes applying manually. The initrd I’m creating doesn’t work for some reason. I get an error root cannot be mounted. No idea if I’m doing something wrong editing the initrd image. I use these commands to extract/create:
unxz -c /mnt/tmp/initrd | cpio -i # extract initrd
find | cpio -H newc -o | xz > ../initrd # create initrdbtw other linux distros always sync before actually shutting down/rebooting the machine just to be sure everything is done to preserve user data. Another suggestion I have is to have e2fsck before mounting casper-rw. I think it would make the whole sthing much more reliable.
Regards and Merry Christmas!
-
December 25, 2011 at 16:15 #2323
As far as I can tell, http://download.openbricks.org/geexbox-devel-20111224-r13686-i386.iso has the fix built in.
-
December 26, 2011 at 16:06 #2343
Thank you for download link. But I don’t see any difference with this build. I tried to debug the problem. I entered emergency mode with “systemctl emergency”. I could “mount -o remount,rw /” but I cannot “mount -o remount,rw /.data”. It says it’s in use. I can’t see anything using it with fuser. Perhaps some weird behavior because of aufs?
When shutting down I see error messages that loop0 and loop1 are busy and cannot be umounted. Also lots of failed to write sector ### on ext2 filesystem. But I know filesystem is ok. It’s a newly created one and I have run a badblock test on the HDD so I know there are no physical disk issues. Any ideas how to fix or debug further?
-
December 27, 2011 at 01:28 #2347
interesting i have testing this 10x with a ntfs paartition containing rootfs and casper-rw file and it was ok. No error
i will test with sync … No other idea for now. -
December 27, 2011 at 05:57 #2351
can you post the result of command line (if you can boot) dmesg ?
Thanks
retrying today and i’m unable to break my casper-rw file under a ntfs partition -
December 27, 2011 at 07:14 #2356
@tomlohave, by saying you cannot corrupt your casper-rw do you just mean that it works or is it cleanly umounted? When I copy my casper-rw to a linux machine and run e2fsck, it tells that it was not cleanly umounted. I guess it is very environment and usage specific after how many unsuccessful umounts a filesystem breaks but it is inevitable to break at some point.
I can copy the output to a flash drive and send it later today. What is an appropriate place to put the output, pastebin?
just FYI after some more observations I could see some errors at the beginning of shutdown process:
systemd[1]: .root.mount mount process exited, code=exited status=1
systemd[1]: .data.mount mount process exited, code=exited status=1
systemd[1]: .squashfs.mount mount process exited, code=exited status=1Then at some interval kernel prints IO error messages about loop1 [1]. Could it be that systemd screws the .root mount where casper-rw resides and it is impossible later to perform a clean umount?
Unfortunately messages move too fast after this point in time and I can’t use scroll lock to stop them hence can’t see a big part pf the log :/
Regards.
[1] I’m inserting “sh” lines into /run/initramfs/shutdown to have stop points where I can inspect what’s going on. When I’m staying on such shell called by /shutdown I see the kernel IO error messages about loop1.
-
December 27, 2011 at 08:17 #2357
forgot my request, problem is gone …
i was able to reproduce it so now i can work on it -
January 7, 2012 at 13:29 #2548
@tomlohave, any hope this can be fixed? Is this a problem only for NTFS?
-
January 9, 2012 at 11:36 #2572
e2fsck ? good. learned a new command. fixed many errors.
-
January 19, 2012 at 11:03 #2700
@rubiki, what are you trying to say? Did you read the thread?
-
February 6, 2012 at 22:02 #2865
I am having the same issue (ext2_lookup: deleted inode referenced and then stall on boot) on an HDD install using unetbootin… here’s my specs:
- CPU is an AMD Duron 800
- RAM is 256 MB
- Graphics Card is Nvidia GeForce 2 MX400
- HDD is SATA connected to a PCI SATA card based on VIA VT6421 / also tried on an HDD directly connected to PATA (regular IDE) on-board controller with same results.
- persistent is set to 512 MB, or 256 MB, with same results.My journey began when GeexBox didn’t like my video card so I need to install the old xf86-video-nvidia-old_96.43.20-1_i686.opk driver first. What I have noticed after countless attempts is that GeexBox gives me the same deleted inode referenced errors even without rebooting…. after installing the old driver and hitting Ctrl-D I get the same. I have never been able to fully boot it in this machine.
BTW… If i don’t “opkg remove xf86-video-nvidia” first, installing the old driver does not complain about dependency clash, and does indeed seem to load upon Ctrl-D. The other way around, I have to force-overwrite, but either way I get stuck on the deleted inode referenced scenario.
-
February 6, 2012 at 22:05 #2866
Sorry forgot one spec… both drives formatted to NTFS. Casper file also copied to root (C:\). I can confirm Casper is being written to, or at least updated, because Windows shows a newer last-modified timestamp for the file at C:\
-
February 7, 2012 at 00:16 #2867
@krestian : please test devel iso : http://download.openbricks.org/
(take the latest). You shouldn’t need anymore xf86-video-nvidia-old
but (yes there is a but …)
read on NTFS partitions is well supported, write not very good …. -
February 7, 2012 at 04:18 #2870
@tomlohave, any chance casper-rw mount parameters to become configurable? I’m thinking about creating a disk partition for that purpose and -o loop is not an appropriate option in this case.
I was also wondering if device mapper can be used such that casper-rw is mapped to a device and using that device [1]. Perhaps this will make mounting/umounting more reliable and independent of the filesystem state?[1] http://sources.redhat.com/lvm2/wiki/DMLoop
-
February 7, 2012 at 19:41 #2884
tomlohave… you are the man.
Thank you for the tip. I was skeptical at first because I would get the deleted inode errors booting right off the Live CD from the link you provided. But somehow got it to work (first time ever on this particular machine) by doing the following:-Install to HDD using unetbootin following the guide.
***BEFORE REBOOTING:***
-Copy C:\casper-rw from C:\unetbtin to C:\
-Copy vmlinuz, rootfs and initrd from the CD to C:\
…and then reboot.…and it booted from the HDD invoking the unetbootin boot menu entry! I’m a happy camper now. I would spend all night thanking you but I have to go test it 😀
-
February 19, 2012 at 09:41 #3001
@ akostadinov :
can you test the last devel iso : http://download.openbricks.org/geexbox-devel-20120219-r13973-i386.iso
add this parameter when booting :
persistent=casper-rw root=/dev/sda1 rw external-persistentI have no more problem with ntfs partition and casper-rw
(change sda1 by the disk containing both rootfs and casper-rw files at the root of your disk) -
February 20, 2012 at 15:48 #3051
@tomlohave, the good news is that casper-rw is no longer corrupt on restart, the bad news is that my configuration is not persisted. On restart everything is on defaults. I think casper is mounted on /persistent but why does it not actually persist I can’t tell :/
I couldn’t actually understand the changes to packages/busybox-init/scripts/linuxrc (http://hg.openbricks.org/openbricks/rev/fdb2a6b49d37)
btw I think e2fsck is highly needed before mounting casper no matter how good shutdown script is, because there are many ways a FS can become corrupted.
-
February 21, 2012 at 00:16 #3056
will recheck it … if you change your regional settings for example, it does not persist ?
e2fsck is on real “root” . Maybe change a little /etc/fstab ? -
February 21, 2012 at 00:38 #3057
@tomlohave, yes, I change regional settings and others and it is not persisted.
as for e2fsck, I think at the time e2fsck from root runs, casper-rw is already mounted rw so can’t be fscked. I might be wrong but this is how I read the code. And I’ve no idea how to check what actually happens. But I think that just before casper-rw is mounted, rootfs is already mounted and e2fsck can be run from there.
-
February 21, 2012 at 02:24 #3060
try this one : http://download.openbricks.org/geexbox-devel-20120221-r13974-i386.iso
i tested it and personnal settings are restored
with external pesristent, i mount casper-rw to restore all directory (except /root : can be to heavy), umount it,
and after pivot root, remount data disk under /data, remount casper-rw under /persistent/, symlink /root to /persistent/root
Maybe we can check data disk on remount. No time to look how to package e2fsck in initrd. But it’s useless for ntfs partition … -
February 27, 2012 at 01:58 #3188
tomlohave, it finally works!
I managed to install it yesterday night. It now saves configuration and also filesystem is fsck clean after shutdown. Hope it behaves stable in the long term 🙂For those interested in installing on windows, here I put a short howto:
1. use the geexbox 1.2.x latest windows installer to install latest geexbox 1.2.x
2. create a geexbox2 directory somewhere on the same disk geexbox 1.2.x is installed
3. extract the following files from geexbox2 ISO (use the one from the above post or newer) file into geexbox2 directory - rootfs, initrd and vmlinuz
4. create a casper-rw file in the geexbox2 directory and format as ext2 (I use a 200M file)
5. edit menu.lst (should be in c:\geexbox\boot) and add an entry similar to the following:
title Start Geexbox 2 ...
kernel=/GEEXBOX2/vmlinuz root=/dev/sda1 boot=UUID=EA2198EB2098C04D rootfs=/GEEXBOX2/rootfs persistent=/GEEXBOX2/casper-rw external-persistent
initrd=/GEEXBOX2/initrd
You would need to change especially these option: root=/dev/sda1 boot=UUID=EA2198EB2098C04D where you need to see the correct values in the entries already present for geexbox 1.2.x. Hopefully somebody can create an installer for geexbox2 but for the time being the above instructions are the easiest way I see.Many thanks to the geexbox team. Don’t forget to support them!
-
February 27, 2012 at 02:20 #3190
good to hear 🙂
No need of option “rw” in line kernel=… ?
-
February 27, 2012 at 02:31 #3191
no need for rw. Pasted my actual configuration. Init assumes it automatically when you have persistent=…
-
February 27, 2012 at 02:39 #3192
yes, re-read linuxrc, and you’re right 😉
-
AuthorPosts
You must be logged in to reply to this topic.
