LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Arch (https://www.linuxquestions.org/questions/arch-29/)
-   -   ArchIso script fails to build my Live distro... (https://www.linuxquestions.org/questions/arch-29/archiso-script-fails-to-build-my-live-distro-815285/)

Alexvader 06-20-2010 11:23 AM

ArchIso script fails to build my Live distro...
 
Hi...

I have installed Arch in my external HDD along with a snapshot of the repos...

I do not run arch in rolling mode, because I want to build some packages from AUR all along with some other stuff I have packaged myself...

so my Repo Snapshot lives in /mount/my_repo, and the packages I have built live in /mount/my_packages, I have created a custom.db.tar.gz containing everything I have built from AUR and my own packages.

my /etc/pacman.conf looks like this :



Code:

#
# /etc/pacman.conf
#
# See the pacman.conf(5) manpage for option and repository directives

#
# GENERAL OPTIONS
#
[options]
# The following paths are commented out with their default values listed.
# If you wish to use different paths, uncomment and update the paths.
#RootDir    = /
#DBPath      = /var/lib/pacman/
#CacheDir    = /var/cache/pacman/pkg/
#LogFile    = /var/log/pacman.log
HoldPkg    = pacman glibc
# If upgrades are available for these packages they will be asked for first
SyncFirst  = pacman
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
#XferCommand = /usr/bin/curl %u > %o
#CleanMethod = KeepInstalled

# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
#IgnorePkg  =
#IgnoreGroup =

#NoUpgrade  =
#NoExtract  =

# Misc options (all disabled by default)
#UseSyslog
#ShowSize
#UseDelta
#TotalDownload

#
# REPOSITORIES
#  - can be defined here or included from another file
#  - pacman will search repositories in the order defined here
#  - local/custom mirrors can be added here or in separate files
#  - repositories listed first will take precedence when packages
#    have identical names, regardless of version number
#  - URLs will have $repo replaced by the name of the current repo
#
# Repository entries are of the format:
#      Include = IncludePath
#
# The header [repo-name] is crucial - it must be present and
# uncommented to enable the repo.
#

# The testing repositories are disabled by default. To enable, uncomment the
# repo name header and Include lines. You can add preferred servers immediately
# after the header, and they will be used before the default mirrors.

#[testing]
## Add your preferred servers here, they will be used first
#Include = /etc/pacman.d/mirrorlist


[custom]
Server = file:///mount/my_packages

[core]
# Add your preferred servers here, they will be used first
#Include = /etc/pacman.d/mirrorlist
Server = file:///mount/my_repo/new_repo/darkstar.ist.utl.pt/archlinux/core/os/x86_64

[extra]
# Add your preferred servers here, they will be used first
#Include = /etc/pacman.d/mirrorlist
Server = file:///mount/my_repo/new_repo/darkstar.ist.utl.pt/archlinux/extra/os/x86_64

#[community-testing]
## Add your preferred servers here, they will be used first
#Include = /etc/pacman.d/mirrorlist

[community]
# Add your preferred servers here, they will be used first
#Include = /etc/pacman.d/mirrorlist
Server = file:///mount/my_repo/new_repo/darkstar.ist.utl.pt/archlinux/community/os/x86_64

# An example of a custom package repository.  See the pacman manpage for
# tips on creating your own repositories.
#[custom]
#Server = file:///home/custompkgs

I have a complete functional Arch Install and so far all is managed through pacman/makepkg.

I have installed the package ArchIso.git from AUR,

and created a workdir /home/alex/MyDistro, cd into it, made the following Makefile ( followed thr wiki ) :




Code:

#### Change these settings to modify how this ISO is built.
#  The directory that you'll be using for the actual build process.
WORKDIR=work
#  A list of packages to install, either space separated in a string or line separated in a file. Can include groups.
PACKAGES="$(shell cat packages.list) syslinux"
# The name of our ISO. Does not specify the architecture!
NAME=myarch
# Version will be appended to the ISO.
VER=1.00
# Kernel version. You'll need this.
KVER=2.6.33-ARCH
# Architecture will also be appended to the ISO name.
ARCH?=$(shell uname -m)
# Current working directory
PWD:=$(shell pwd)
# This is going to be the full name the final iso/img will carry
FULLNAME="$(PWD)"/$(NAME)-$(VER)-$(ARCH)

# Default make instruction to build everything.
all: myarch

# The following will first run the base-fs routine before creating the final iso image.
myarch: base-fs
    mkarchiso -p syslinux iso "$(WORKDIR)" "$(FULLNAME)".iso

# This is the main rule for make the working filesystem. It will run routines from left to right.
# Thus, root-image is called first and syslinux is called last.
base-fs: root-image boot-files initcpio overlay iso-mounts syslinux

# The root-image routine is always executed first.
# It only downloads and installs all packages into the $WORKDIR, giving you a basic system to use as a base.
root-image: "$(WORKDIR)"/root-image/.arch-chroot
"$(WORKDIR)"/root-image/.arch-chroot:
root-image:
    mkarchiso -p $(PACKAGES) create "$(WORKDIR)"

# Rule for make /boot
boot-files: root-image
    cp -r "$(WORKDIR)"/root-image/boot "$(WORKDIR)"/iso/
    cp -r boot-files/* "$(WORKDIR)"/iso/boot/

# Rules for initcpio images
initcpio: "$(WORKDIR)"/iso/boot/myarch.img
"$(WORKDIR)"/iso/boot/myarch.img: mkinitcpio.conf "$(WORKDIR)"/root-image/.arch-chroot
    mkdir -p "$(WORKDIR)"/iso/boot
    mkinitcpio -c ./mkinitcpio.conf -b "$(WORKDIR)"/root-image -k $(KVER) -g $@

# See: Overlay
overlay:
    mkdir -p "$(WORKDIR)"/overlay/etc/pacman.d
    cp -r overlay "$(WORKDIR)"/
    wget -O "$(WORKDIR)"/overlay/etc/pacman.d/mirrorlist http://www.archlinux.org/mirrorlist/$(ARCH)/all/
    sed -i "s/#Server/Server/g" "$(WORKDIR)"/overlay/etc/pacman.d/mirrorlist

# Rule to process isomounts file.
iso-mounts: "$(WORKDIR)"/isomounts
"$(WORKDIR)"/isomounts: isomounts root-image
    sed "s|@ARCH@|$(ARCH)|g" isomounts > $@

# This routine is always executed just before generating the actual image.
syslinux: root-image
    mkdir -p $(WORKDIR)/iso/boot/isolinux
    cp $(WORKDIR)/root-image/usr/lib/syslinux/*.c32 $(WORKDIR)/iso/boot/isolinux/
    cp $(WORKDIR)/root-image/usr/lib/syslinux/isolinux.bin $(WORKDIR)/iso/boot/isolinux/

# In case "make clean" is called, the following routine gets rid of all files created by this Makefile.
clean:
    rm -rf "$(WORKDIR)" "$(FULLNAME)".img "$(FULLNAME)".iso

.PHONY: all myarch
.PHONY: base-fs
.PHONY: root-image boot-files initcpio overlay iso-mounts
.PHONY: syslinux
.PHONY: cleanand ran

Code:

[root@iskandhar MyBuild]# make myarch
cat: packages.list: No such file or directory
mkarchiso -p " syslinux" create "work"
mkarchiso : Configuration Settings
        working directory:  work
              image name:  none
====> Creating working directory: work
====> Installing packages to 'work/root-image/'
/usr/sbin/locale-gen: line 33: sed: command not found
/usr/sbin/locale-gen: line 35: sed: command not found
/usr/sbin/locale-gen: line 38: sed: command not found
Cleaning up what we can
cp -r "work"/root-image/boot "work"/iso/
cp: cannot stat `work/root-image/boot': No such file or directory
make: *** [boot-files] Error 1
[root@iskandhar MyBuild]#


Code:

[root@iskandhar MyBuild]# ls work
iso  isomounts  README  root-image
[root@iskandhar MyBuild]#
[root@iskandhar MyBuild]# ls work/root-image
bin  dev  etc  lib  lib64  proc  sbin  sys  tmp  usr  var
[root@iskandhar MyBuild]#




What must I do for this to work...?

Why isnt root-image/boot ever created...?

The partitioning scheme I have in the external USB HDD where I have installed Arch is /boot -> /dev/sdb,1 /->/dev/sdb2, swap->/dev/sdb3, /mount/my_repo->/dev/sdb4. Is this a problem if I want to build my Arch LiveDVD....?

BRGDS

Alex

halvy 06-21-2010 02:49 AM

I wish I could help.. but I have wrestled with trying to build my own live cd of my desktop for years on and off.

I was successful briefly with bootcd .. but it is really not maintained properly lately, or whatever, so I am going to try remastersys from ubuntu next.

Meanwhile what I really want to do is probably more in line with you may be attempting.. which is just trying to *figure-out* how to do this, by using the functions and commands available, WITHOUT someone else kludgy *scripts* (that almost ALWAYS don't work-- for one reason or another).

The only suggestion I can give is make sure your initrd is built correctly and leads properly into the iso fs... (which is where I am currently stuck).

lettuce know :)

linus72 06-21-2010 04:46 PM

hey Alexvader
your using archiso or archiso-live?
I followed the instructions in the archiso-live
from git and it workwed great except the resulting iso/usb terminals would not work
although I have no idea why?
see here
http://www.linuxquestions.org/questi...needed-810452/
I think its related to /dev/pts or something, maybe also to the command
"source exports"
in archiso-live/scripts/exports
Code:

echo "This overrides the mkinitcpio path so remember to clean up the PATH with source /etc/profile"
export PATH="`pwd`/mkinitcpio:`pwd`:$PATH"

??
so, although it correctly builds the image; its worthless if terminals dont work, etc
although they work in console mode...?

archiso-live git
http://wiki.archlinux.org/index.php/Archiso-live

there's also Larch; which looks good but haven't tried it
http://larch.berlios.de/

Note that my nFluxOS ARCH build uses the quax slack kernel 2.6.33.3-qx and special linux-live-scripts-6.3.0. it uses squashfs-3.4, not 4.0+
I included full source, etc in NfluxOS ARCH edition

note that archiso-live also includes a special linux-live for squashfs-4.0 but as I said it doesn't work right?!

Use the archiso-live on your system, it's quick using squashfs-4.0
and boot to x and you'll see when you open a terminal...

Alexvader 06-22-2010 10:26 AM

Hi Linus72

Thanks for your reply :)

I am using archIso-git from AUR... the issue is that I was not using any packages.list, duh ...:rolleyes:

I will retry this afternoon... see if I get Luckier... :) I'll try Larch also... Installed it Yesterday...

Thanks for all the Info... :)

BRGDS

Alex

linus72 06-22-2010 10:56 AM

I'm gonna check out archiso; I thought it was dead...

and larch warns it may mess up your installed system so be careful...
in the end I want nFluxOS ARCH to be 100% ARCH; with archiso kernel, etc

so, yeah hit this post back with any new info:banghead:

Alexvader 06-22-2010 12:37 PM

Hi Linus72

Is there an nFluxOS 64 bits...?

I am creating a Live Medium for engineers ( mainly Civil, Aero and Mechanical engineering ) with apps for Computational Fluid Dynamics, Finite elements analysis, 3D Geometry modelling, Math Prototyping/scripting, Source Compilation support, CAD and Graphing, Pre and post processing, office applications, browser support... the whole pack; I wish to pack all this in 4.4GB

Typically the user will run this an a 64 bits PC with 4GB ram at least ( although this is not a strict requirement, it is just for the sake of application "snappiness" ) in multitabbed console mode ( DVTM or screen ) or X using IceWM of fluxBox as WM, being able to run his work ( the files created can be huge ) in a mounted external USB HDD where he cans save his work in the end of session.

I think this will be fine, and also a way of telling Engineering Students as well as Engineers all over the word that they do not need to use proprietary tools to have a productive workflow in terms of PLM ( product Lifecycle management ).

I will not use anything proprietary, all the apps I will compile and use have source freely available.

It will be sort of an Engineering Design Swiss Knife

BRGDS

Alex

linus72 06-22-2010 02:59 PM

No alexvader there ain't a 64 one
However; one of my pc's is a amd athlon64 3300+ HP a810n
is that a 64bit pc?
http://h10025.www1.hp.com/ewfrf/wc/d...product=443069

I've never ran a 64bit distro on it
maybe I should try??

you want 64bit arch edition?
can a kernel source be used compiled for either 32 or 64??
ah...i'm gonna download the dual-architecture netinstall iso for ARCH:)

Alexvader 06-22-2010 03:36 PM

What is the ratio of compression between the initial root-image and the final iso...?

I'm afraid I will have to ditch some stuff if i am to make it all fit into a 4.4 GB DVD...

EDIT:

It is a 64 bits architecture.

I stoped using 32 bits many years ago... in fact I started using 64 bits arch still at university... they had these big HP Workstations with HP-Ux...

linus72 06-22-2010 04:10 PM

the ratio with squashfs 3.4 is roughly about 3:1
so a 2.5GB install is equal to about a 700MB cd, maybe less

with squashfs 4.0+ I think it's about 3.5:1 to maybe 4:1
so much better

I'm gonna try to install arch 64 to the amd athlon64 and see whats up...

Alexvader 06-22-2010 04:25 PM

Hi...

make myarch ended in error :

Code:

mkarchiso -p "Code_Saturne Frame3DD JSBSim MbDyn Varicad abiword acl acpi admesh alsa-lib apr apr-util ar9170-fw                                                                    tomake avahi avl b43-fwcutter babl bash bc beecrypt bin86 binutils bison blas blender bluez boost bridge-utils br                                                                  alculix cdrkit centerim cln cloog-ppl cmake compositeproto conky consolekit convert2syrthes coreutils cpio cppuni                                                                  vs damageproto dash db dbus dbus-core dbus-glib dbus-python dcron desktop-file-utils device-mapper devtools dhcli                                                                    dnsutils docutils dolfin doxygen dri2proto dvtm e2fsprogs ed eficas eficasV2-Openturns eggdbus eject elinks ench                                                                  t ffc ffcall ffmpeg fftw fiat file filesystem findutils firefox fixesproto flac flex fltk fluxbox fontcacheproto                                                                    idi fte gamin gawk gc gcc gcc-ada gcc-fortran gcc-libs gcc-objc gconf gd gdbm gegl gen-init-cpio gerris getdp get                                                                    gmp gmsh gnome-icon-theme gnome-keyring gnome-menus gnome-mime-data gnome-vfs gnuchess gnumeric gnupg gnupg2 gnu                                                                  z grep groff grub gsfonts gsl gstreamer0.10 gstreamer0.10-base gtk gtk2 gtkglext gts gxine gzip hal hal-info hdf5                                                                  m-utils icon-naming-utils icu ifenslave ilmbase imagemagick imake imlib imlib2 impact inetutils initscripts input                                                                  hon irssi isdn4k-utils iw iwlwifi-1000-ucode iwlwifi-3945-ucode iwlwifi-4965-ucode iwlwifi-5000-ucode iwlwifi-515                                                                  atik java-commons-io java-commons-logging java-flexdock java-jdom java-saxon6 java-skinlf java-xmlgraphics-common                                                                  kbproto kernel26 kernel26-firmware kernel26-headers kernel26-lts kernel26-lts-headers lame lapack lcms less lesst                                                                  ibdaemon libdatrie libdjvu libdmx libdrm libelf libevent libexif libfetch libffi libfontenc libgcrypt libgl libgl                                                                  bgssglue libice libid3tag libidl2 libidn libieee1284 libisofs libixp libjpeg libksba libldap libmatio libmng libm                                                                  bpciaccess libpng libpng12 librpcsecgss librsvg libsamplerate libsasl libsm libsndfile libsoup libspectre libtasn                                                                  l libvdpau libvorbis libwebkit libwmf libx11 libx86 libxau libxaw libxcb libxcomposite libxcursor libxdamage libx                                                                  che libxft libxi libxinerama libxkbfile libxkbui libxml2 libxmu libxp libxpm libxrandr libxrender libxslt libxss                                                                    enses lilo links linux-api-headers linux-atm lm_sensors logrotate lua lvm2 lxappearance lxde-common lxde-icon-the                                                                  erminal lzo2 m4 mailx make man-db man-pages maxima mc mcpp mdadm med menu-cache mesa metis-edf midori mime-types                                                                    nit-tools modulef mozilla-common mpfr mpich2 mrxvt mtools mysql mysql-clients namcap nano nbd ncurses ndiswrapper                                                                  utils nfsidmap ngsolve nspr nss ocaml octave ofeli oleo omniorb omniorbpy openTurns openal openbox opencascade op                                                                  sl openvpn orbit2 orc pacman pacman-mirrorlist pam pango paraview patch pciutils pcmanfm pcmciautils pcre perl pe                                                                  inentry pixman pkgconfig pm-quirks pm-utils polkit poppler poppler-glib popt portaudio ppl ppp pptpclient printpr                                                                  pyqt pyqt3 pyrex python python-configobj python-enthought-mayavi python-enthought-traits python-enthought-utils p                                                                  t python-pmw python-scipy python-sphinx qemu-kvm qhull qscintilla qscintilla-qt3 qt qt3 qtemu qtoctave quick-init                                                                  erproto rfkill rp-pppoe rpcbind rpm rrdtool rsync rt2870usb-fw rt2x00-rt61-fw rt2x00-rt71w-fw run-parts salome-ge                                                                  ome-yacs samba sane sbcl sc schroedinger scilab scons scotch scrnsaverproto sdl sdparm sed setuptools shadow shar                                                                  hfs-tools startup-notification subversion sudo swig syrthes sysfsutils syslinux syslog-ng sysvinit t1lib talloc t                                                                  x tiacx-firmware time tix tk tk-togl transfig tree tzdata udev udev-compat ufc ufl umfpack unixodbc unrar unzip u                                                                  per vpnc vte vtk w3m wavpack wget which wings wireless-regdb wireless_tools wmii wpa_actiond wpa_supplicant wv wx                                                                  o xcb-util xcursor-themes xdg-utils xextproto xf86-input-evdev xf86-video-vesa xf86dgaproto xf86miscproto xf86vid                                                                  roto xinetd xkeyboard-config xorg-apps xorg-docs xorg-font-utils xorg-fonts-100dpi xorg-fonts-75dpi xorg-fonts-al                                                                    xorg-server-utils xorg-twm xorg-utils xorg-xauth xorg-xinit xorg-xkb-utils xpdf xproto xsensors xterm xulrunner
mkarchiso : Configuration Settings
        working directory:  work
              image name:  none
====> Creating working directory: work
====> Installing packages to 'work/root-image/'
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = (unset),
        LC_ALL = (unset),
        LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
/opt/eficas/convert/Parserv5/Translate.py:2372: SyntaxWarning: name 'DEBUGGING' is assigned to before global decl
  global DEBUGGING
/opt/eficas/convert/Parserv5/Translate.py:2372: SyntaxWarning: name 'DEBUGGING' is assigned to before global decl
  global DEBUGGING
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = (unset),
        LC_ALL = (unset),
        LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
Warning in file "/usr/share/applications/Thunar-folder-handler.desktop": usage of MIME type "x-directory/normal" is discouraged ("x-directory" is an old media type that should be replaced with a modern equivalent)
Warning in file "/usr/share/applications/pcmanfm-find.desktop": usage of MIME type "x-directory/normal" is discouraged ("x-directory" is an old media type that should be replaced with a modern equivalent)
Error in file "/usr/share/applications/gnumeric.desktop": "zz-application/zz-winassoc-xls" is an invalid MIME type ("zz-application" is an unregistered media type)
Warning in file "/usr/share/applications/pcmanfm.desktop": usage of MIME type "x-directory/normal" is discouraged ("x-directory" is an old media type that should be replaced with a modern equivalent)
Could not parse file "/usr/share/applications/gxine.desktop": Key file contains line 'x-content/video-svcd' which is not a key-value pair, group, or comment
Warning in file "/usr/share/applications/pcmanfm-folder-handler.desktop": usage of MIME type "x-directory/gnome-default-handler" is discouraged ("x-directory" is an old media type that should be replaced with a modern equivalent)
Warning in file "/usr/share/applications/pcmanfm-folder-handler.desktop": usage of MIME type "x-directory/normal" is discouraged ("x-directory" is an old media type that should be replaced with a modern equivalent)
Cleaning up what we can
cp -r "work"/root-image/boot "work"/iso/
cp -r boot-files/* "work"/iso/boot/
cp: cannot stat `boot-files/*': No such file or directory
make: *** [boot-files] Error 1
[root@iskandhar MyBuild]#

Just when I was preparing to build isomounts and Isolinux... :-(

Code:

[root@iskandhar MyBuild]# ls
Makefile  packages.list  work
[root@iskandhar MyBuild]# ls work
iso  isomounts  README  root-image
[root@iskandhar MyBuild]#

EDIT


Forget this post...

linus72 06-23-2010 02:30 PM

Oh dont give up yet bro
Did you try archiso-live yet?

and some more info about Larch
http://chakra-project.org/wiki/index...veMedia(Larch7)

I'm compiling the same kernel from nFluxOS arch on the new x86_64 I installed
it keepes stopping with errors on different 3rd party drivers that are for 32bit I guess
anyway, it should be done soon....I hope

Alexvader 06-23-2010 03:50 PM

1 Attachment(s)
Hi Linus72 :)

Good news, and bad news...

Good news, I built my live Image...

Bad news, i booted it up in qemu, and it stopped in kernel panic...

linus72 06-23-2010 04:18 PM

is the iso label correct?
the ARCH_2010etc?

I'm telling ya, check out the archiso-live build
this is how I had to do it...

do the git thing from here
only do this in / of your build

so it would be
now, when it's done you may have to fix stuff
I had to edit
archiso-live/scripts/profiles/livebackup/archiso-mkinitcpio.conf

it originally said
Code:

HOOKS="base udev archiso-early pata scsi sata usb fw filesystems usbinput fbsplash"
#HOOKS="base udev boot-usb archiso ide scsi sata usb fw filesystems"

and would fail saying no archiso-early, etc

so, I replaced it with

Code:

HOOKS="base udev archiso pata ide scsi sata usb fw filesystems usbinput fbsplash"
#HOOKS="base udev boot-usb archiso ide scsi sata usb fw filesystems"

note I put ide there too

then from the readme that says

Quote:

How you do a live backup of your system
su root
cd $HOME/archiso-live/scripts
source exports
cd profiles/livebackup
./build livebackup
But dont pput the archiso-live folder in /home or /root
it works better from /

and with squashfs4.0+ and a 2.5GB install it will make a livecd/usb in about 20min!
much faster than squashfs3.4 which would take nearly 2hrs!

but, when you open a terminal it probably wont work
thats only issue with archiso-live!?

Alexvader 06-23-2010 04:52 PM

Hi,

Thanks for the answer... :)

So what would you advise me to do differently from ArchIso wiki...?

I followed Exactly the wiki's instructions...

Quote:

prompt 1
timeout 0
display myarch.msg
DEFAULT myarch

LABEL myarch
KERNEL /boot/vmlinuz26
APPEND initrd=/boot/myarch.img archisolabel=XXX tmpfs_size=75% locale=en_US.UTF-8

LABEL memtest86+
KERNEL /boot/memtest86+-2.10.bin
This archisolabel=XXX puzzles me... having used the makefile "as is", how would I have to change this...?

BRGDS

Alex

linus72 06-23-2010 05:33 PM

are you booting it from usb or cd?

I try mine out by booting from usb
archiso-live and linux-live-scripts-6.3.0 dont require a label boot parameter..

but, when I use a true arch linux net-install iso off usb
I use gparted and label usb ARCH
and change boot parameter to label=ARCH
instead of dd'ing iso to usb, etc

if you have K3B, open the iso with K3B and it will printout the iso's label
maybe it's off?

as I said I have not used archiso...


All times are GMT -5. The time now is 04:43 AM.