Author: alexander
Date: 2006-07-26 07:21:30 -0600 (Wed, 26 Jul 2006)
New Revision: 1676
Modified:
trunk/packages/initramfs/Makefile
trunk/packages/initramfs/init.c
Log:
Added support for root.ext2 larger than 2 GB (e.g., for a LiveDVD)
Modified: trunk/packages/initramfs/Makefile
===================================================================
--- trunk/packages/initramfs/Makefile 2006-07-23 10:45:41 UTC (rev 1675)
+++ trunk/packages/initramfs/Makefile 2006-07-26 13:21:30 UTC (rev 1676)
@@ -55,7 +55,7 @@
rm -rf temp
init:
- gcc [EMAIL PROTECTED] -o $@ -static -ldevmapper -Os -s -Wall
-DVOLUME_ID=\"lfslivecd-$(VERSION)\"
+ gcc [EMAIL PROTECTED] -o $@ -static -ldevmapper -Os -s -Wall
-DVOLUME_ID=\"lfslivecd-$(VERSION)\" -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
clean:
-rm -rf temp
Modified: trunk/packages/initramfs/init.c
===================================================================
--- trunk/packages/initramfs/init.c 2006-07-23 10:45:41 UTC (rev 1675)
+++ trunk/packages/initramfs/init.c 2006-07-26 13:21:30 UTC (rev 1676)
@@ -69,7 +69,7 @@
int i, overhead;
int fd;
struct dm_task * dmt;
- struct stat stat_buf;
+ int devsize;
printf("Initramfs activated\n");
@@ -114,11 +114,14 @@
/* Create a sparse file for the second loop */
- stat(ROOT_FILE, &stat_buf);
- overhead = 0x1000 + stat_buf.st_size / 0x100;
+ fd = open("/dev/loop0", O_RDONLY);
+ ioctl(fd, BLKGETSIZE, &devsize);
+ close(fd);
+ overhead = 0x1000 + devsize * 2;
+
fd = open(OVERLAY, O_CREAT | O_WRONLY, 0600);
- ftruncate(fd, stat_buf.st_size + overhead);
+ ftruncate(fd, devsize * 0x200ULL + overhead);
close(fd);
losetup("/dev/loop1", OVERLAY, O_RDWR);
@@ -128,7 +131,7 @@
dm_task_set_name(dmt, "lfs-cd");
dm_task_set_major(dmt, 254);
dm_task_set_minor(dmt, 0);
- dm_task_add_target(dmt, 0, stat_buf.st_size / 0x200,
+ dm_task_add_target(dmt, 0, devsize,
"snapshot", "/dev/loop0 /dev/loop1 p 8");
dm_task_run(dmt);
dm_task_destroy(dmt);
--
http://linuxfromscratch.org/mailman/listinfo/livecd
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page