auto-biarch (x86_64 + i686) LiveDVD patch + ISO
by Jan Kratochvil
Hi,
finally created a LiveDVD ISO automatically booting x86_64 OS on x86_64
(and i686 otherwise). Regular users will not notice there exists any new arch
while they will benefit from the full performance of their PC:
http://people.redhat.com/jkratoch/x86bilive-2009062000.tar.gz (71KB)
It uses live_dir=LiveOS-x86_64 vs. live_dir=LiveOS-i686 to boot the image.
The syslinux patch provides "default-{x86_64,i386}" keywords in isolinux.cfg.
livecd-iso-to-disk is not patched/compatible with such image.
livecd-creator should create such ISO on a single run, not by merging the
output of two livecd-creator runs by a 3rd party app.
Regards,
Jan
Reasons:
* I still did not understand why I have to carry with me two media - both
x86_64 and i386 - when all the data perfectly fit on a single media.
* Why I have to try to boot x86_64 first to find out if the specific machine
is x86_64? Even common programmers do not know it, "Windows XP works here".
* The OS must "just work", it must be fun and easy. Requiring a special
technical decision before even starting the OS download is a showstopper.
* Checked that a regular user will on http://fedoraproject.org/get-fedora
still download terrible performance degradation of 32-bit OS although her
hadware is in 70%-95%(?) of cases x86_64. x86_64 is here for 6 years now.
* Arguing x86 may be faster than x86_64... I did not find any such case,
x86_64 is a more modern arch (more registers, PIC for free, better ABI).
We already hit the 2GB address space limitations. x86_64 is the future.
* All the friends of mine have 8Mbit+ ADSL and TB disks downloading many DVD
disks so some several more hundreds of MB are not something to notice.
mkisofs -f -J -r -hide-rr-moved -hide-joliet-trans-tbl -V Fedora-11-x86bi-Live -o ../x86bilive.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-info-table -boot-load-size 4 .
mount -r -o loop Fedora-11-x86_64-Live.iso x86_64/
mount -r -o loop Fedora-11-i686-Live.iso i686/
x86bilive:
total 4
lrwxrwxrwx 1 root root 13 2009-06-18 21:10 GPL -> ../x86_64/GPL
lrwxrwxrwx 1 root root 14 2009-06-18 21:11 LiveOS-i686 -> ../i686/LiveOS/
lrwxrwxrwx 1 root root 16 2009-06-18 21:10 LiveOS-x86_64 -> ../x86_64/LiveOS/
lrwxrwxrwx 1 root root 16 2009-06-18 21:10 README -> ../x86_64/README
drwxr-xr-x 2 root root 4096 2009-06-20 21:44 isolinux/
x86bilive/isolinux:
total 184
lrwxrwxrwx 1 root root 30 2009-06-18 21:13 boot.cat -> ../../x86_64/isolinux/boot.cat
lrwxrwxrwx 1 root root 31 2009-06-18 21:17 ii686 -> ../../i686/isolinux/initrd0.img
-rw-r--r-- 1 root root 14336 2009-06-20 21:45 isolinux.bin
-r--r--r-- 1 root root 1411 2009-06-20 21:44 isolinux.cfg
lrwxrwxrwx 1 root root 33 2009-06-18 21:13 ix8664 -> ../../x86_64/isolinux/initrd0.img
lrwxrwxrwx 1 root root 28 2009-06-18 21:17 ki686 -> ../../i686/isolinux/vmlinuz0
lrwxrwxrwx 1 root root 30 2009-06-18 21:13 kx8664 -> ../../x86_64/isolinux/vmlinuz0
lrwxrwxrwx 1 root root 29 2009-06-18 21:13 memtest -> ../../x86_64/isolinux/memtest
lrwxrwxrwx 1 root root 32 2009-06-18 21:13 splash.jpg -> ../../x86_64/isolinux/splash.jpg
-r--r--r-- 1 root root 159888 2009-06-20 20:48 vesamenu.c32
isolinux.cfg:
default vesamenu.c32
timeout 100
menu background splash.jpg
menu title Welcome to Fedora-11-x86bi-Live!
menu color border 0 #ffffffff #00000000
menu color sel 7 #ffffffff #ff000000
menu color title 0 #ffffffff #00000000
menu color tabmsg 0 #ffffffff #00000000
menu color unsel 0 #ffffffff #00000000
menu color hotsel 0 #ff000000 #ffffffff
menu color hotkey 7 #ffffffff #ff000000
menu color timeout_msg 0 #ffffffff #00000000
menu color timeout 0 #ffffffff #00000000
menu color cmdline 0 #ffffffff #00000000
menu hidden
menu hiddenrow 5
label linux0
menu label x86_64 Boot
kernel kx8664
append initrd=ix8664 root=CDLABEL=Fedora-11-x86bi-Live rootfstype=auto live_dir=LiveOS-x86_64 ro liveimg quiet rhgb
menu default-x86_64
label check0
menu label x86_64 Verify and Boot
kernel kx8664
append initrd=ix8664 root=CDLABEL=Fedora-11-x86bi-Live rootfstype=auto live_dir=LiveOS-x86_64 ro liveimg quiet rhgb check
label linux1
menu label i686 Boot
kernel ki686
append initrd=ii686 root=CDLABEL=Fedora-11-x86bi-Live rootfstype=auto live_dir=LiveOS-i686 ro liveimg quiet rhgb
menu default-i386
label check1
menu label i686 Verify and Boot
kernel ki686
append initrd=ii686 root=CDLABEL=Fedora-11-x86bi-Live rootfstype=auto live_dir=LiveOS-i686 ro liveimg quiet rhgb check
label memtest
menu label Memory Test
kernel memtest
label local
menu label Boot from local drive
localboot 0xffff
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ defaults.patch 20 Jun 2009 20:10:46 -0000
@@ -0,0 +1,175 @@
+--- syslinux-3.75-orig/com32/menu/Makefile 2009-04-16 06:42:14.000000000 +0200
++++ syslinux-3.75-defaults/com32/menu/Makefile 2009-06-20 19:21:32.000000000 +0200
+@@ -24,7 +24,7 @@ MODULES = menu.c32 vesamenu.c32
+ TESTFILES =
+
+ COMMONOBJS = menumain.o readconfig.o passwd.o drain.o printmsg.o colors.o \
+- background.o refstr.o execute.o
++ background.o refstr.o execute.o verify_cpu.o
+
+ all: $(MODULES) $(TESTFILES)
+
+--- syslinux-3.75-orig/com32/menu/menu.h 2009-04-16 06:42:14.000000000 +0200
++++ syslinux-3.75-defaults/com32/menu/menu.h 2009-06-20 19:21:32.000000000 +0200
+@@ -224,4 +224,9 @@ void execute(const char *cmdline, enum k
+ /* drain.c */
+ void drain_keyboard(void);
+
++/* verify_cpu.S */
++#if defined(__i386__) || defined(__x86_64__)
++int verify_cpu(void);
++#endif
++
+ #endif /* MENU_H */
+--- syslinux-3.75-orig/com32/menu/readconfig.c 2009-04-16 06:42:14.000000000 +0200
++++ syslinux-3.75-defaults/com32/menu/readconfig.c 2009-06-20 20:23:24.000000000 +0200
+@@ -656,11 +656,22 @@ static void parse_config_file(FILE *f)
+ m->parent_entry->displayname = refstr_get(m->title);
+ }
+ }
+- } else if ( looking_at(p, "default") ) {
+- if (ld.label) {
+- ld.menudefault = 1;
+- } else if (m->parent_entry) {
+- m->parent->defentry = m->parent_entry->entry;
++ } else if ( looking_at(p, "default")
++#if defined(__i386__) || defined(__x86_64__)
++ || looking_at(p, "default-i386")
++ || looking_at(p, "default-x86_64")
++#endif
++ ) {
++#if defined(__i386__) || defined(__x86_64__)
++ if (! ( ( looking_at(p, "default-i386") && verify_cpu () == 0 ) ||
++ ( looking_at(p, "default-x86_64") && verify_cpu () != 0 ) ) )
++#endif
++ {
++ if (ld.label) {
++ ld.menudefault = 1;
++ } else if (m->parent_entry) {
++ m->parent->defentry = m->parent_entry->entry;
++ }
+ }
+ } else if ( looking_at(p, "hide") ) {
+ ld.menuhide = 1;
+--- syslinux-3.75-orig/com32/menu/verify_cpu.S 1970-01-01 01:00:00.000000000 +0100
++++ syslinux-3.75-defaults/com32/menu/verify_cpu.S 2009-06-20 20:30:27.000000000 +0200
+@@ -0,0 +1,119 @@
++/* https://lists.linux-foundation.org/pipermail/fastboot/2006-November/01188... */
++#if defined(__i386__) || defined(__x86_64__)
++ .globl verify_cpu
++verify_cpu:
++ push %ebx
++ push %esi
++ push %edi
++ push %ebp
++ call Xverify_cpu
++ pop %ebp
++ pop %edi
++ pop %esi
++ pop %ebx
++ ret
++
++/*
++ *
++ * verify_cpu.S
++ *
++ * 14 Nov 2006 Vivek Goyal: Created the file
++ *
++ * This is a common code for verification whether CPU supports
++ * long mode and SSE or not. It is not called directly instead this
++ * file is included at various places and compiled in that context.
++ * Following are the current usage.
++ *
++ * This file is included by both 16bit and 32bit code.
++ *
++ * arch/x86_64/boot/setup.S : Boot cpu verification (16bit)
++ * arch/x86_64/boot/compressed/head.S: Boot cpu verification (32bit)
++ * arch/x86_64/kernel/trampoline.S: secondary processor verfication (16bit)
++ * arch/x86_64/kernel/acpi/wakeup.S:Verfication at resume (16bit)
++ *
++ * verify_cpu, returns the status of cpu check in register %eax.
++ * 0: Success 1: Failure
++ *
++ * The caller needs to check for the error code and take the action
++ * appropriately. Either display a message or halt.
++ */
++
++Xverify_cpu:
++
++ pushfl # Save caller passed flags
++ pushl $0 # Kill any dangerous flags
++ popfl
++
++ /* minimum CPUID flags for x86-64 */
++ /* see http://www.x86-64.org/lists/discuss/msg02971.html */
++#define SSE_MASK ((1<<25)|(1<<26))
++#define REQUIRED_MASK1 ((1<<0)|(1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<8)|\
++ (1<<13)|(1<<15)|(1<<24))
++#define REQUIRED_MASK2 (1<<29)
++ pushfl # standard way to check for cpuid
++ popl %eax
++ movl %eax,%ebx
++ xorl $0x200000,%eax
++ pushl %eax
++ popfl
++ pushfl
++ popl %eax
++ cmpl %eax,%ebx
++ jz verify_cpu_no_longmode # cpu has no cpuid
++
++ movl $0x0,%eax # See if cpuid 1 is implemented
++ cpuid
++ cmpl $0x1,%eax
++ jb verify_cpu_no_longmode # no cpuid 1
++
++ xor %di,%di
++ cmpl $0x68747541,%ebx # AuthenticAMD
++ jnz verify_cpu_noamd
++ cmpl $0x69746e65,%edx
++ jnz verify_cpu_noamd
++ cmpl $0x444d4163,%ecx
++ jnz verify_cpu_noamd
++ mov $1,%di # cpu is from AMD
++
++verify_cpu_noamd:
++ movl $0x1,%eax # Does the cpu have what it takes
++ cpuid
++ andl $REQUIRED_MASK1,%edx
++ xorl $REQUIRED_MASK1,%edx
++ jnz verify_cpu_no_longmode
++
++ movl $0x80000000,%eax # See if extended cpuid is implemented
++ cpuid
++ cmpl $0x80000001,%eax
++ jb verify_cpu_no_longmode # no extended cpuid
++
++ movl $0x80000001,%eax # Does the cpu have what it takes
++ cpuid
++ andl $REQUIRED_MASK2,%edx
++ xorl $REQUIRED_MASK2,%edx
++ jnz verify_cpu_no_longmode
++
++verify_cpu_sse_test:
++ movl $1,%eax
++ cpuid
++ andl $SSE_MASK,%edx
++ cmpl $SSE_MASK,%edx
++ je verify_cpu_sse_ok
++ test %di,%di
++ jz verify_cpu_no_longmode # only try to force SSE on AMD
++ movl $0xc0010015,%ecx # HWCR
++ rdmsr
++ btr $15,%eax # enable SSE
++ wrmsr
++ xor %di,%di # don't loop
++ jmp verify_cpu_sse_test # try again
++
++verify_cpu_no_longmode:
++ popfl # Restore caller passed flags
++ movl $1,%eax
++ ret
++verify_cpu_sse_ok:
++ popfl # Restore caller passed flags
++ xorl %eax, %eax
++ ret
++#endif
--- syslinux.spec 16 Apr 2009 18:11:30 -0000 1.59
+++ syslinux.spec 20 Jun 2009 20:10:46 -0000
@@ -7,6 +7,7 @@ License: GPLv2+
Group: Applications/System
URL: http://syslinux.zytor.com/
Source0: ftp://ftp.kernel.org/pub/linux/utils/boot/syslinux/%{name}-%{tarball_vers...
+Patch9: defaults.patch
ExclusiveArch: %{ix86} x86_64
Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: nasm >= 0.98.38-1, perl, netpbm-progs
@@ -33,12 +34,18 @@ MEMDISK, which loads legacy operating sy
%prep
%setup -q -n syslinux-%{tarball_version}
+%patch9 -p1
%build
CFLAGS="-Werror -Wno-unused -finline-limit=2000"
export CFLAGS
# If you make clean here, we lose the provided syslinux.exe
#make clean
+rm -f com32/menu/vesamenu.c32
+make -C com32/lib libcom32.a
+make -C com32/gpllib libcom32gpl.a
+make -C com32/menu vesamenu.c32
+test -f com32/menu/vesamenu.c32
make installer
make -C sample tidy
13 years, 2 months
[PATCH v2] Implement %post --erroronfail
by Daniel Drake
This flag is documented and parsed, but not acted upon.
---
imgcreate/creator.py | 11 +++++++++--
1 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/imgcreate/creator.py b/imgcreate/creator.py
index 909f616..4deb49e 100644
--- a/imgcreate/creator.py
+++ b/imgcreate/creator.py
@@ -23,6 +23,7 @@ import sys
import tempfile
import shutil
import logging
+import subprocess
import selinux
import yum
@@ -702,11 +703,17 @@ class ImageCreator(object):
script = "/tmp/" + os.path.basename(path)
try:
- subprocess.call([s.interp, script],
- preexec_fn = preexec, env = env)
+ subprocess.check_call([s.interp, script],
+ preexec_fn = preexec, env = env)
except OSError, (err, msg):
raise CreatorError("Failed to execute %%post script "
"with '%s' : %s" % (s.interp, msg))
+ except subprocess.CalledProcessError, err:
+ if s.errorOnFail:
+ raise CreatorError("%%post script failed with code %d "
+ % err.returncode)
+ logging.warning("ignoring %%post failure (code %d)"
+ % err.returncode)
finally:
os.unlink(path)
--
1.6.2.5
13 years, 10 months
Custom initrd
by Mads Kiilerich
I am using livecd-creator from livecd-tools-024-1.fc11.i586 and need to
customize the initrd. But I have problems making it work and figuring
out what is going on.
I have figured out that livecd-creator through imgcreate creates a
/etc/sysconfig/mkinitrd. When rpms runs mkinitrd from their %post script
then it will exec mkliveinitrd and use the configured module list.
AFAICS livecd-creator then picks up the initrd from /boot, and the end
result after having written the iso to usb with livecd-iso-to-disk is
that it ends up in /syslinux/initrd0.img.
But if I overwrite the /boot/initrd* in %post like this:
/sbin/mkinitrd -f /boot/initrd-$(rpm -q kernel --qf
'%{version}-%{release}.%{arch}\n').img $(rpm -q kernel --qf
'%{version}-%{release}.%{arch}\n')
then it won't be used.
What am I doing wrong? When is the initrd picked up? What is the code flow?
If I make %post preserve /etc/sysconfig/mkinitrd and boots from usb and
restores /etc/sysconfig/mkinitrd and runs
/sbin/mkinitrd -f /mnt/live/syslinux/initrd0.img $(rpm -q kernel
--qf "%{version}-%{release}.%{arch}\n")
then it works as expected.
/Mads
14 years
Fedora 12 Live CD creation error : Unable to run ['/usr/bin/passwd', '-d', 'root']!
by Nirmal A
I'm using Fedora 12 and I'm trying to create a liveCD using the following
command (logged in as root user)
*livecd-creator -c fedora-live-base.ks*
Following error is seen.
Installing: perl-Digest-SHA1 ####################### [88/91]
Installing: perl-Pod-Simple ####################### [89/91]
Installing: perl-Crypt-PasswdMD5 ####################### [90/91]
Installing: syslinux ####################### [91/91]
/usr/lib/python2.6/site-packages/imgcreate/errors.py:45: DeprecationWarning:
BaseException.message has been deprecated as of Python 2.6
return unicode(self.message)
*Error creating Live CD : Unable to run ['/usr/bin/passwd', '-d', 'root']!
*What could be the reason for this error ? Any will help will be
appreciated.
I'm attaching the ks file with this mail
thanks
Nirmal*
**
*
14 years, 2 months
[PATCH] Also call fdisk in C locale to make the output predictable.
by Alexander Boström
I had to run livecd-iso-to-disk in an English locale to make it accept
that the partition really was bootable. This should fix that.
---
tools/livecd-iso-to-disk.sh | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/tools/livecd-iso-to-disk.sh b/tools/livecd-iso-to-disk.sh
index 3a4726d..f625d2b 100755
--- a/tools/livecd-iso-to-disk.sh
+++ b/tools/livecd-iso-to-disk.sh
@@ -128,7 +128,7 @@ checkPartActive() {
return
fi
- if [ "$(/sbin/fdisk -l $device 2>/dev/null |grep $dev |awk {'print $2;'})" != "*" ]; then
+ if [ "$(LC_ALL=C /sbin/fdisk -l $device 2>/dev/null |grep $dev |awk {'print $2;'})" != "*" ]; then
echo "Partition isn't marked bootable!"
echo "You can mark the partition as bootable with "
echo " # /sbin/parted $device"
@@ -186,7 +186,7 @@ checkGPT() {
dev=$1
getdisk $dev
- if [ "$(/sbin/fdisk -l $device 2>/dev/null |grep -c GPT)" -eq "0" ]; then
+ if [ "$(LC_ALL=C /sbin/fdisk -l $device 2>/dev/null |grep -c GPT)" -eq "0" ]; then
echo "EFI boot requires a GPT partition table."
echo "This can be done manually or you can run with --format"
exitclean
--
1.6.5.2
14 years, 2 months
Pointers to live usb using super floppy format
by Bruno Wolff III
I have some older computers that don't seem to be able to boot off of
liveusb devcies formatted like hard drives and am looking to see if they
will work with ones formatted as superfloppies (no partition table and
no MBR). Since the bios' setup options suggest that they will boot off of
some usb devices it seems likely this will work.
However I am having trouble finding clear instructions on how to turn
a live[c/dv]d image into a liveusb image that doesn't use a partioned device.
Can someone point me to some reasonable documentation on how to do this?
14 years, 2 months
Cannot select PAE kernel at boot
by Taylor, Monroe E
I have created a live image using livecd-creator. The image includes a hardware diagnostic utility in it. Basically I install the image on a USB device and boot the system using the USB device and run the diagnostic utility to capture data then shutdown the system.
Now I want to use this to run the diagnostic on servers with > 4GB of memory. I used yum command to install the kernel-PAE.i686 to be able to see > 4GB memory. The install was successful. However, when I rebooted, I was not given the option to select the PAE kernel (which is probably because it is a livecd image?).
I booted as normal and checked the /boot directory and it contains the following files
-rw-r--r-- 1 root root 90947 2009-06-18 12:57 config-2.6.27.25-78.2.56.fc9.i686
-rw-r--r-- 1 root root 91113 2009-06-18 12:45 config-2.6.27.25-78.2.56.fc9.i686.PAE
drwxr-xr-x 3 root root 4096 2009-12-16 19:11 efi
-rw-r--r-- 1 root root 118396 2009-04-24 15:29 elf-memtest86+-2.11
drwxr-xr-x 2 root root 4096 2008-04-07 13:32 grub
-rw------- 1 root root 2553813 2009-12-17 10:27 initrd-2.6.27.25-78.2.56.fc9.i686.PAE.img
-rw-r--r-- 1 root root 116720 2009-04-24 15:29 memtest86+-2.11
-rw-r--r-- 1 root root 976362 2009-06-18 12:57 System.map-2.6.27.25-78.2.56.fc9.i686
-rw-r--r-- 1 root root 993147 2009-06-18 12:45 System.map-2.6.27.25-78.2.56.fc9.i686.PAE
-rwxr-xr-x 1 root root 2227280 2009-06-18 12:57 vmlinuz-2.6.27.25-78.2.56.fc9.i686
-rwxr-xr-x 1 root root 2269712 2009-06-18 12:45 vmlinuz-2.6.27.25-78.2.56.fc9.i686.PAE
Please note that there was no grub.conf file.
Can anyone tell me what I must do in order to boot the PAE kernel from the live USB? This is a critical issue for me so any and all assistance is greatly appreciated.
14 years, 3 months
[PATCH] Implement %post --erroronfail
by Daniel Drake
I was a bit surprised to find that this flag is documented and parsed, but
not acted upon. Am I missing anything?
---
imgcreate/creator.py | 10 ++++++++--
1 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/imgcreate/creator.py b/imgcreate/creator.py
index 909f616..3324520 100644
--- a/imgcreate/creator.py
+++ b/imgcreate/creator.py
@@ -23,6 +23,7 @@ import sys
import tempfile
import shutil
import logging
+import subprocess
import selinux
import yum
@@ -702,11 +703,16 @@ class ImageCreator(object):
script = "/tmp/" + os.path.basename(path)
try:
- subprocess.call([s.interp, script],
- preexec_fn = preexec, env = env)
+ subprocess.check_call([s.interp, script],
+ preexec_fn = preexec, env = env)
except OSError, (err, msg):
raise CreatorError("Failed to execute %%post script "
"with '%s' : %s" % (s.interp, msg))
+ except subprocess.CalledProcessError, err:
+ if not s.errorOnFail:
+ pass
+ raise CreatorError("%%post script failed with code %d "
+ % err.returncode)
finally:
os.unlink(path)
--
1.6.2.5
14 years, 3 months
F12 DVD doesn't have anaconda-runtime
by Jasper Hartline
When using livecd-tools and a mounted DVD of F12 as a repository in my
kickstart file
livecd-creator dies when anaconda-runtime is not found. Is there a reason
for this?
How will I use a F12 DVD as a repository to eliminate using the network as a
repository source
when anaconda-runtime isn't found on the DVD that is being used?
Thanks.
14 years, 3 months
tools/livecd-iso-to-disk.sh
by Warren Togami 砥上勇
tools/livecd-iso-to-disk.sh | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
New commits:
commit 6872def12cb62eeaf17b6f6a8c12a7e0ae29a8cb
Author: Jim Meyering <meyering(a)redhat.com>
Date: Wed Dec 16 13:46:07 2009 -0500
livecd-iso-to-disk.sh: use LC_ALL=C, not LANG=C, since LC_ALL trumps all other envvars, including LANG. For example,
$ LC_ALL=fr_FR.UTF-8 LANG=C /bin/cat no-such
/bin/cat: no-such: Aucun fichier ou dossier de ce type
diff --git a/tools/livecd-iso-to-disk.sh b/tools/livecd-iso-to-disk.sh
index 95ca158..3a4726d 100755
--- a/tools/livecd-iso-to-disk.sh
+++ b/tools/livecd-iso-to-disk.sh
@@ -147,7 +147,7 @@ createGPTLayout() {
read
umount ${device}? &> /dev/null
/sbin/parted --script $device mklabel gpt
- partinfo=$(LANG=C /sbin/parted --script -m $device "unit b print" |grep ^$device:)
+ partinfo=$(LC_ALL=C /sbin/parted --script -m $device "unit b print" |grep ^$device:)
size=$(echo $partinfo |cut -d : -f 2 |sed -e 's/B$//')
/sbin/parted --script $device unit b mkpart '"EFI System Partition"' fat32 17408 $(($size - 17408)) set 1 boot on
USBDEV=${device}1
@@ -169,7 +169,7 @@ createMSDOSLayout() {
read
umount ${device}? &> /dev/null
/sbin/parted --script $device mklabel msdos
- partinfo=$(LANG=C /sbin/parted --script -m $device "unit b print" |grep ^$device:)
+ partinfo=$(LC_ALL=C /sbin/parted --script -m $device "unit b print" |grep ^$device:)
size=$(echo $partinfo |cut -d : -f 2 |sed -e 's/B$//')
/sbin/parted --script $device unit b mkpart primary fat32 17408 $(($size - 17408)) set 1 boot on
USBDEV=${device}1
@@ -192,7 +192,7 @@ checkGPT() {
exitclean
fi
- partinfo=$(LANG=C /sbin/parted --script -m $device "print" |grep ^$partnum:)
+ partinfo=$(LC_ALL=C /sbin/parted --script -m $device "print" |grep ^$partnum:)
volname=$(echo $partinfo |cut -d : -f 6)
flags=$(echo $partinfo |cut -d : -f 7)
if [ "$volname" != "EFI System Partition" ]; then
14 years, 3 months