Arch Linux 0.7.1 - my feedback

please read the post before vote
Well, I've used Arch linux for many months in late 2004 / early 2005 and then I've switched to Ubuntu...
some days ago I've installed version 0.7.1 and updated it with pacman -Syu
I've seen a lot of improvement since the last time I used it and I was near to think "ok let's switch back to Arch" until I found I that thing I really hate  :!: is still here..
You can't install old versions of some packages. For example, kernel.. or.. php (ok there is one in Aur that is maybe "too" old) and mysql..
in the php/mysql example it's true that version 5 is the latest one but they (at least php) still develope the 4.x version for security and many server still have it and also many scripts supports only php4 and 5.
also, as I am a php developer, I need to test scripts with old versions.
but as I said this is just an example. I think that while you can't think to have a big repository of binaries it would be great to be able to install old versions via source.
and recompiling software by hand using old PKGBUILDS is a problem case you don't have a tool that tells you wich packaged were "aligned" with wich.. I mean.. the new php works only with the mysql5 extension so even if you build mysql by yourself it won't work with php.. and so on for apache..
anyway.. if a user is able to block a package and prevent the automatic update he should also be able to use the non-latest version of it.
I know that arch is a bleeding edge distro but this shouldn't mean that you have only the bleeding things. (see gentoo for example)
Another thing that will help a lot in my opinion is to have in the wiki 2 lists:
- one very detailed with available daemons and their use.. for example.. ok.. fam is the file alteration monitor.. but why you need it and wich are the main programs that takes advantage from it and what happens if you doesn't run it? and so on for hal, etc. ..
- one list with all available standard groups that tells user to wich group subscribe in order to be able to performe a specific action
imho this 2 lists will help the (new) user understand better what is doing and why The arch philosophy of "do it yourself  and learn doing it" is great but have to be encouraged, and in fact there already is a very good documentation.
Just my 2 cents. And sorry if some one else already said this before; in this case take my post as an underline mark btw.. I'll attach a poll to it.
bye,
Giovanni.

iphitus wrote:To me this thread looks more like "i dont want to make a second package for myself, so let's get the devs to do it".
hmm.. this sounds a bit offenisve to me. Cause I don't actually need that packages as I'm not using Arch as main distro. This post was meant to give a feedback..
iphitus wrote:Especially as there isnt a huge demand for such a package, and you are most likely to be one of a very small minority to use that duplicate package.
ok I agree with this. but from my point of view it is because users that needed it too already switched to another distro..
and this leads us to this:
tomk wrote:I voted "No, there is no need", because I think this is simply an indication that Arch is not the right distro for you - it doesn't meet your requirements.
Imho, the point is that Arch have a lot of great features. The one I'd like to have is a feature that I think will just increase the number of great features Arch already have and will make Arch the right distro for more users. So users that switch to another distro will lose a lot of features that they like to get one or two that they need..
tomk wrote:This "thing that you really hate" is still there because firstly the Arch devs, and secondly Arch users, have not needed to change it. If you want to work "from within" to change that, with polls like this, feature requests, etc, I wish you the best of luck, but I think your poll result so far should tell you something about the support you can expect.
the poll was mainly for myself to get an idea of the users opinion not to change the things. And as I said it is not a change from my point of view, but just a new feature. About Arch devs I agree but about users I don't.. how you can say it if you say to me that I should change distro? In this way people that thinks like me will always remain a minority in arch community. And I don't think that having a old version of a "core" package would be against the Arch philosophy.
tomk wrote:Finally a general point, and this applies to wiki entries as well - you will get a better response if you do something, and then ask "what do you think?" instead of asking "Why doesn't Arch do this?"
I did it for the software thing with the poll and anyway also for the wiki I didn't wrote it but I thought it was clear.. For the wiki I posted my idea and there was no need for the question "what do you think" cause is a discussion forum Also please keep in mind that I wrote the original post in late night and that I'm italian so my english isn't so good  :oops:
anyway.. thanks for the tip about subit a feature request and for your answers.
bye,
Giovanni.

Similar Messages

  • System encryption using LUKS and GPG encrypted keys for arch linux

    Update: As of 2012-03-28, arch changed from gnupg 1.4 to 2.x which uses pinentry for the password dialog. The "etwo" hook described here doesn't work with gnupg 2. Either use the openssl hook below or use a statically compiled version of gnupg 1.4.
    Update: As of 2012-12-19, the mkinitcpio is not called during boot, unless the "install" file for the hook contains "add_runscript". This resulted in an unbootable system for me. Also, the method name was changed from install () to build ().
    Update: 2013-01-13: Updated the hook files using the corrections by Deth.
    Note: This guide is a bit dated now, in particular the arch installation might be different now. But essentially, the approach stays the same. Please also take a look at the posts further down, specifically the alternative hooks that use openssl.
    I always wanted to set up a fully encrypted arch linux server that uses gpg encrypted keyfiles on an external usb stick and luks for root filesystem encryption. I already did it once in gentoo using this guide. For arch, I had to play alot with initcpio hooks and after one day of experimentation, I finally got it working. I wrote a little guide for myself which I'm going to share here for anyone that might be interested. There might be better or easier ways, like I said this is just how I did it. I hope it might help someone else. Constructive feedback is always welcome
    Intro
    Using arch linux mkinitcpio's encrypt hook, one can easily use encrypted root partitions with LUKS. It's also possible to use key files stored on an external drive, like an usb stick. However, if someone steals your usb stick, he can just copy the key and potentially access the system. I wanted to have a little extra security by additionally encrypting the key file with gpg using a symmetric cipher and a passphrase.
    Since the encrypt hook doesn't support this scenario, I created a modifed hook called “etwo” (silly name I know, it was the first thing that came to my mind). It will simply look if the key file has the extension .gpg and, if yes, use gpg to decrypt it, then pipe the result into cryptsetup.
    Conventions
    In this short guide, I use the following disk/partition names:
    /dev/sda: is the hard disk that will contain an encrypted swap (/dev/sda1), /var (/dev/sda2) and root (/dev/sda3) partition.
    /dev/sdb is the usb stick that will contain the gpg encrypted luks keys, the kernel and grub. It will have one partition /dev/sdb1 formatted with ext2.
    /dev/mapper/root, /dev/mapper/swap and /dev/mapper/var will be the encrypted devices.
    Credits
    Thanks to the authors of SECURITY_System_Encryption_DM-Crypt_with_LUKS (gentoo wiki), System Encryption with LUKS (arch wiki), mkinitcpio (arch wiki) and Early Userspace in Arch Linux (/dev/brain0 blog)!
    Guide
    1. Boot the arch live cd
    I had to use a newer testing version, because the 2010.05 cd came with a broken gpg. You can download one here: http://releng.archlinux.org/isos/. I chose the “core“ version. Go ahead and boot the live cd, but don't start the setup yet.
    2. Set keymap
    Use km to set your keymap. This is important for non-qwerty keyboards to avoid suprises with passphrases...
    3. Wipe your discs
    ATTENTION: this will DELETE everything on /dev/sda and /dev/sdb forever! Do not blame me for any lost data!
    Before encrypting the hard disc, it has to be completely wiped and overwritten with random data. I used shred for this. Others use badblocks or dd with /dev/urandom. Either way, this will take a long time, depending on the size of your disc. I also wiped my usb stick just to be sure.
    shred -v /dev/sda
    shred -v /dev/sdb
    4. Partitioning
    Fire up fdisk and create the following partitions:
    /dev/sda1, type linux swap.
    /dev/sda2: type linux
    /dev/sda3: type linux
    /dev/sdb1, type linux
    Of course you can choose a different layout, this is just how I did it. Keep in mind that only the root filesystem will be decrypted by the initcpio. The rest will be decypted during normal init boot using /etc/crypttab, the keys being somewhere on the root filesystem.
    5. Format  and mount the usb stick
    Create an ext2 filesystem on /dev/sdb1:
    mkfs.ext2 /dev/sdb1
    mkdir /root/usb
    mount /dev/sdb1 /root/usb
    cd /root/usb # this will be our working directory for now.
    Do not mount anything to /mnt, because the arch installer will use that directory later to mount the encrypted root filesystem.
    6. Configure the network (if not already done automatically)
    ifconfig eth0 192.168.0.2 netmask 255.255.255.0
    route add default gw 192.168.0.1
    echo "nameserver 192.168.0.1" >> /etc/resolv.conf
    (this is just an example, your mileage may vary)
    7. Install gnupg
    pacman -Sy
    pacman -S gnupg
    Verify that gnupg works by launching gpg.
    8. Create the keys
    Just to be sure, make sure swap is off:
    cat /proc/swaps
    should return no entries.
    Create gpg encrypted keys (remember, we're still in our working dir /root/usb):
    dd if=/dev/urandom bs=512 count=4 | gpg -v --cipher-algo aes256 --digest-algo sha512 -c -a > root.gpg
    dd if=/dev/urandom bs=512 count=4 | gpg -v --cipher-algo aes256 --digest-algo sha512 -c -a > var.gpg
    Choose a strong password!!
    Don't do this in two steps, e.g don't do dd to a file and then gpg on that file. The key should never be stored in plain text on an unencrypted device, except if that device is wiped on system restart (ramfs)!
    Note that the default cipher for gpg is cast5, I just chose to use a different one.
    9. Create the encrypted devices with cryptsetup
    Create encrypted swap:
    cryptsetup -c aes-cbc-essiv:sha256 -s 256 -h whirlpool -d /dev/urandom create swap /dev/sda1
    You should see /dev/mapper/swap now. Don't format nor turn it on for now. This will be done by the arch installer.
    Important: From the Cryptsetup 1.1.2 Release notes:
    Cryptsetup can accept passphrase on stdin (standard input). Handling of new line (\n) character is defined by input specification:
        if keyfile is specified as "-" (using --key-file=- or by positional argument in luksFormat and luksAddKey, like cat file | cryptsetup --key-file=- <action> ), input is processed
          as normal binary file and no new line is interpreted.
        if there is no key file specification (with default input from stdin pipe like echo passphrase | cryptsetup <action> ) input is processed as input from terminal, reading will
          stop after new line is detected.
    If I understand this correctly, since the randomly generated key can contain a newline early on, piping the key into cryptsetup without specifying --key-file=- could result in a big part of the key to be ignored by cryptsetup. Example: if the random key was "foo\nandsomemorebaratheendofthekey", piping it directly into cryptsetup without --key-file=- would result in cryptsetup using only "foo" as key which would have big security implications. We should therefor ALWAYS pipe the key into cryptsetup using --key-file=- which ignores newlines.
    gpg -q -d root.gpg 2>/dev/null | cryptsetup -v -–key-file=- -c aes-cbc-essiv:sha256 -s 256 -h whirlpool luksFormat /dev/sda3
    gpg -q -d var.gpg 2>/dev/null | cryptsetup -v –-key-file=- -c aes-cbc-essiv:sha256 -s 256 -h whirlpool -v luksFormat /dev/sda2
    Check for any errors.
    10. Open the luks devices
    gpg -d root.gpg 2>/dev/null | cryptsetup -v –-key-file=- luksOpen /dev/sda3 root
    gpg -d var.gpg 2>/dev/null | cryptsetup -v –-key-file=- luksOpen /dev/sda2 var
    If you see /dev/mapper/root and /dev/mapper/var now, everything is ok.
    11. Start the installer /arch/setup
    Follow steps 1 to 3.
    At step 4 (Prepare hard drive(s), select “3 – Manually Configure block devices, filesystems and mountpoints. Choose /dev/sdb1 (the usb stick) as /boot, /dev/mapper/swap for swap, /dev/mapper/root for / and /dev/mapper/var for /var.
    Format all drives (choose “yes” when asked “do you want to have this filesystem (re)created”) EXCEPT for /dev/sdb1, choose “no”. Choose the correct filesystem for /dev/sdb1, ext2 in my case. Use swap for /dev/mapper/swap. For the rest, I chose ext4.
    Select DONE to start formatting.
    At step 5 (Select packages), select grub as boot loader. Select the base group. Add mkinitcpio.
    Start step 6 (Install packages).
    Go to step 7 (Configure System).
    By sure to set the correct KEYMAP, LOCALE and TIMEZONE in /etc/rc.conf.
    Edit /etc/fstab:
    /dev/mapper/root / ext4 defaults 0 1
    /dev/mapper/swap swap swap defaults 0 0
    /dev/mapper/var /var ext4 defaults 0 1
    # /dev/sdb1 /boot ext2 defaults 0 1
    Configure the rest normally. When you're done, setup will launch mkinitcpio. We'll manually launch this again later.
    Go to step 8 (install boot loader).
    Be sure to change the kernel line in menu.lst:
    kernel /vmlinuz26 root=/dev/mapper/root cryptdevice=/dev/sda3:root cryptkey=/dev/sdb1:ext2:/root.gpg
    Don't forget the :root suffix in cryptdevice!
    Also, my root line was set to (hd1,0). Had to change that to
    root (hd0,0)
    Install grub to /dev/sdb (the usb stick).
    Now, we can exit the installer.
    12. Install mkinitcpio with the etwo hook.
    Create /mnt/lib/initcpio/hooks/etwo:
    #!/usr/bin/ash
    run_hook() {
    /sbin/modprobe -a -q dm-crypt >/dev/null 2>&1
    if [ -e "/sys/class/misc/device-mapper" ]; then
    if [ ! -e "/dev/mapper/control" ]; then
    /bin/mknod "/dev/mapper/control" c $(cat /sys/class/misc/device-mapper/dev | sed 's|:| |')
    fi
    [ "${quiet}" = "y" ] && CSQUIET=">/dev/null"
    # Get keyfile if specified
    ckeyfile="/crypto_keyfile"
    usegpg="n"
    if [ "x${cryptkey}" != "x" ]; then
    ckdev="$(echo "${cryptkey}" | cut -d: -f1)"
    ckarg1="$(echo "${cryptkey}" | cut -d: -f2)"
    ckarg2="$(echo "${cryptkey}" | cut -d: -f3)"
    if poll_device "${ckdev}" ${rootdelay}; then
    case ${ckarg1} in
    *[!0-9]*)
    # Use a file on the device
    # ckarg1 is not numeric: ckarg1=filesystem, ckarg2=path
    if [ "${ckarg2#*.}" = "gpg" ]; then
    ckeyfile="${ckeyfile}.gpg"
    usegpg="y"
    fi
    mkdir /ckey
    mount -r -t ${ckarg1} ${ckdev} /ckey
    dd if=/ckey/${ckarg2} of=${ckeyfile} >/dev/null 2>&1
    umount /ckey
    # Read raw data from the block device
    # ckarg1 is numeric: ckarg1=offset, ckarg2=length
    dd if=${ckdev} of=${ckeyfile} bs=1 skip=${ckarg1} count=${ckarg2} >/dev/null 2>&1
    esac
    fi
    [ ! -f ${ckeyfile} ] && echo "Keyfile could not be opened. Reverting to passphrase."
    fi
    if [ -n "${cryptdevice}" ]; then
    DEPRECATED_CRYPT=0
    cryptdev="$(echo "${cryptdevice}" | cut -d: -f1)"
    cryptname="$(echo "${cryptdevice}" | cut -d: -f2)"
    else
    DEPRECATED_CRYPT=1
    cryptdev="${root}"
    cryptname="root"
    fi
    warn_deprecated() {
    echo "The syntax 'root=${root}' where '${root}' is an encrypted volume is deprecated"
    echo "Use 'cryptdevice=${root}:root root=/dev/mapper/root' instead."
    if poll_device "${cryptdev}" ${rootdelay}; then
    if /sbin/cryptsetup isLuks ${cryptdev} >/dev/null 2>&1; then
    [ ${DEPRECATED_CRYPT} -eq 1 ] && warn_deprecated
    dopassphrase=1
    # If keyfile exists, try to use that
    if [ -f ${ckeyfile} ]; then
    if [ "${usegpg}" = "y" ]; then
    # gpg tty fixup
    if [ -e /dev/tty ]; then mv /dev/tty /dev/tty.backup; fi
    cp -a /dev/console /dev/tty
    while [ ! -e /dev/mapper/${cryptname} ];
    do
    sleep 2
    /usr/bin/gpg -d "${ckeyfile}" 2>/dev/null | cryptsetup --key-file=- luksOpen ${cryptdev} ${cryptname} ${CSQUIET}
    dopassphrase=0
    done
    rm /dev/tty
    if [ -e /dev/tty.backup ]; then mv /dev/tty.backup /dev/tty; fi
    else
    if eval /sbin/cryptsetup --key-file ${ckeyfile} luksOpen ${cryptdev} ${cryptname} ${CSQUIET}; then
    dopassphrase=0
    else
    echo "Invalid keyfile. Reverting to passphrase."
    fi
    fi
    fi
    # Ask for a passphrase
    if [ ${dopassphrase} -gt 0 ]; then
    echo ""
    echo "A password is required to access the ${cryptname} volume:"
    #loop until we get a real password
    while ! eval /sbin/cryptsetup luksOpen ${cryptdev} ${cryptname} ${CSQUIET}; do
    sleep 2;
    done
    fi
    if [ -e "/dev/mapper/${cryptname}" ]; then
    if [ ${DEPRECATED_CRYPT} -eq 1 ]; then
    export root="/dev/mapper/root"
    fi
    else
    err "Password succeeded, but ${cryptname} creation failed, aborting..."
    exit 1
    fi
    elif [ -n "${crypto}" ]; then
    [ ${DEPRECATED_CRYPT} -eq 1 ] && warn_deprecated
    msg "Non-LUKS encrypted device found..."
    if [ $# -ne 5 ]; then
    err "Verify parameter format: crypto=hash:cipher:keysize:offset:skip"
    err "Non-LUKS decryption not attempted..."
    return 1
    fi
    exe="/sbin/cryptsetup create ${cryptname} ${cryptdev}"
    tmp=$(echo "${crypto}" | cut -d: -f1)
    [ -n "${tmp}" ] && exe="${exe} --hash \"${tmp}\""
    tmp=$(echo "${crypto}" | cut -d: -f2)
    [ -n "${tmp}" ] && exe="${exe} --cipher \"${tmp}\""
    tmp=$(echo "${crypto}" | cut -d: -f3)
    [ -n "${tmp}" ] && exe="${exe} --key-size \"${tmp}\""
    tmp=$(echo "${crypto}" | cut -d: -f4)
    [ -n "${tmp}" ] && exe="${exe} --offset \"${tmp}\""
    tmp=$(echo "${crypto}" | cut -d: -f5)
    [ -n "${tmp}" ] && exe="${exe} --skip \"${tmp}\""
    if [ -f ${ckeyfile} ]; then
    exe="${exe} --key-file ${ckeyfile}"
    else
    exe="${exe} --verify-passphrase"
    echo ""
    echo "A password is required to access the ${cryptname} volume:"
    fi
    eval "${exe} ${CSQUIET}"
    if [ $? -ne 0 ]; then
    err "Non-LUKS device decryption failed. verify format: "
    err " crypto=hash:cipher:keysize:offset:skip"
    exit 1
    fi
    if [ -e "/dev/mapper/${cryptname}" ]; then
    if [ ${DEPRECATED_CRYPT} -eq 1 ]; then
    export root="/dev/mapper/root"
    fi
    else
    err "Password succeeded, but ${cryptname} creation failed, aborting..."
    exit 1
    fi
    else
    err "Failed to open encryption mapping: The device ${cryptdev} is not a LUKS volume and the crypto= paramater was not specified."
    fi
    fi
    rm -f ${ckeyfile}
    fi
    Create /mnt/lib/initcpio/install/etwo:
    #!/bin/bash
    build() {
    local mod
    add_module dm-crypt
    if [[ $CRYPTO_MODULES ]]; then
    for mod in $CRYPTO_MODULES; do
    add_module "$mod"
    done
    else
    add_all_modules '/crypto/'
    fi
    add_dir "/dev/mapper"
    add_binary "cryptsetup"
    add_binary "dmsetup"
    add_binary "/usr/bin/gpg"
    add_file "/usr/lib/udev/rules.d/10-dm.rules"
    add_file "/usr/lib/udev/rules.d/13-dm-disk.rules"
    add_file "/usr/lib/udev/rules.d/95-dm-notify.rules"
    add_file "/usr/lib/initcpio/udev/11-dm-initramfs.rules" "/usr/lib/udev/rules.d/11-dm-initramfs.rules"
    add_runscript
    help ()
    cat<<HELPEOF
    This hook allows for an encrypted root device with support for gpg encrypted key files.
    To use gpg, the key file must have the extension .gpg and you have to install gpg and add /usr/bin/gpg
    to your BINARIES var in /etc/mkinitcpio.conf.
    HELPEOF
    Edit /mnt/etc/mkinitcpio.conf (only relevant sections displayed):
    MODULES=”ext2 ext4” # not sure if this is really nessecary.
    BINARIES=”/usr/bin/gpg” # this could probably be done in install/etwo...
    HOOKS=”base udev usbinput keymap autodetect pata scsi sata usb etwo filesystems” # (usbinput is only needed if you have an usb keyboard)
    Copy the initcpio stuff over to the live cd:
    cp /mnt/lib/initcpio/hooks/etwo /lib/initcpio/hooks/
    cp /mnt/lib/initcpio/install/etwo /lib/initcpio/install/
    cp /mnt/etc/mkinitcpio.conf /etc/
    Verify your LOCALE, KEYMAP and TIMEZONE in /etc/rc.conf!
    Now reinstall the initcpio:
    mkinitcpio -g /mnt/boot/kernel26.img
    Make sure there were no errors and that all hooks were included.
    13. Decrypt the "var" key to the encrypted root
    mkdir /mnt/keys
    chmod 500 /mnt/keys
    gpg –output /mnt/keys/var -d /mnt/boot/var.gpg
    chmod 400 /mnt/keys/var
    14. Setup crypttab
    Edit /mnt/etc/crypttab:
    swap /dev/sda1 SWAP -c aes-cbc-essiv:sha256 -s 256 -h whirlpool
    var /dev/sda2 /keys/var
    15. Reboot
    We're done, you may reboot. Make sure you select the usb stick as the boot device in your bios and hope for the best. . If it didn't work, play with grub's settings or boot from the live cd, mount your encrypted devices and check all settings. You might also have less trouble by using uuid's instead of device names.  I chose device names to keep things as simple as possible, even though it's not the optimal way to do it.
    Make backups of your data and your usb stick and do not forget your password(s)! Or you can say goodbye to your data forever...
    Last edited by fabriceb (2013-01-15 22:36:23)

    I'm trying to run my install script that is based on https://bbs.archlinux.org/viewtopic.php?id=129885
    Decrypting the gpg key after grub works, but then "Devce root already exists." appears every second.
    any idea ?
    #!/bin/bash
    # This script is designed to be run in conjunction with a UEFI boot using Archboot intall media.
    # prereqs:
    # EFI "BIOS" set to boot *only* from EFI
    # successful EFI boot of Archboot USB
    # mount /dev/sdb1 /src
    set -o nounset
    #set -o errexit
    # Host specific configuration
    # this whole script needs to be customized, particularly disk partitions
    # and configuration, but this section contains global variables that
    # are used during the system configuration phase for convenience
    HOSTNAME=daniel
    USERNAME=user
    # Globals
    # We don't need to set these here but they are used repeatedly throughout
    # so it makes sense to reuse them and allow an easy, one-time change if we
    # need to alter values such as the install target mount point.
    INSTALL_TARGET="/install"
    HR="--------------------------------------------------------------------------------"
    PACMAN="pacman --noconfirm --config /tmp/pacman.conf"
    TARGET_PACMAN="pacman --noconfirm --config /tmp/pacman.conf -r ${INSTALL_TARGET}"
    CHROOT_PACMAN="pacman --noconfirm --cachedir /var/cache/pacman/pkg --config /tmp/pacman.conf -r ${INSTALL_TARGET}"
    FILE_URL="file:///packages/core-$(uname -m)/pkg"
    FTP_URL='ftp://mirrors.kernel.org/archlinux/$repo/os/$arch'
    HTTP_URL='http://mirrors.kernel.org/archlinux/$repo/os/$arch'
    # Functions
    # I've avoided using functions in this script as they aren't required and
    # I think it's more of a learning tool if you see the step-by-step
    # procedures even with minor duplciations along the way, but I feel that
    # these functions clarify the particular steps of setting values in config
    # files.
    SetValue () {
    # EXAMPLE: SetValue VARIABLENAME '\"Quoted Value\"' /file/path
    VALUENAME="$1" NEWVALUE="$2" FILEPATH="$3"
    sed -i "s+^#\?\(${VALUENAME}\)=.*$+\1=${NEWVALUE}+" "${FILEPATH}"
    CommentOutValue () {
    VALUENAME="$1" FILEPATH="$2"
    sed -i "s/^\(${VALUENAME}.*\)$/#\1/" "${FILEPATH}"
    UncommentValue () {
    VALUENAME="$1" FILEPATH="$2"
    sed -i "s/^#\(${VALUENAME}.*\)$/\1/" "${FILEPATH}"
    # Initialize
    # Warn the user about impending doom, set up the network on eth0, mount
    # the squashfs images (Archboot does this normally, we're just filling in
    # the gaps resulting from the fact that we're doing a simple scripted
    # install). We also create a temporary pacman.conf that looks for packages
    # locally first before sourcing them from the network. It would be better
    # to do either *all* local or *all* network but we can't for two reasons.
    # 1. The Archboot installation image might have an out of date kernel
    # (currently the case) which results in problems when chrooting
    # into the install mount point to modprobe efivars. So we use the
    # package snapshot on the Archboot media to ensure our kernel is
    # the same as the one we booted with.
    # 2. Ideally we'd source all local then, but some critical items,
    # notably grub2-efi variants, aren't yet on the Archboot media.
    # Warn
    timer=9
    echo -e "\n\nMAC WARNING: This script is not designed for APPLE MAC installs and will potentially misconfigure boot to your existing OS X installation. STOP NOW IF YOU ARE ON A MAC.\n\n"
    echo -n "GENERAL WARNING: This procedure will completely format /dev/sda. Please cancel with ctrl-c to cancel within $timer seconds..."
    while [[ $timer -gt 0 ]]
    do
    sleep 1
    let timer-=1
    echo -en "$timer seconds..."
    done
    echo "STARTING"
    # Get Network
    echo -n "Waiting for network address.."
    #dhclient eth0
    dhcpcd -p eth0
    echo -n "Network address acquired."
    # Mount packages squashfs images
    umount "/packages/core-$(uname -m)"
    umount "/packages/core-any"
    rm -rf "/packages/core-$(uname -m)"
    rm -rf "/packages/core-any"
    mkdir -p "/packages/core-$(uname -m)"
    mkdir -p "/packages/core-any"
    modprobe -q loop
    modprobe -q squashfs
    mount -o ro,loop -t squashfs "/src/packages/archboot_packages_$(uname -m).squashfs" "/packages/core-$(uname -m)"
    mount -o ro,loop -t squashfs "/src/packages/archboot_packages_any.squashfs" "/packages/core-any"
    # Create temporary pacman.conf file
    cat << PACMANEOF > /tmp/pacman.conf
    [options]
    Architecture = auto
    CacheDir = ${INSTALL_TARGET}/var/cache/pacman/pkg
    CacheDir = /packages/core-$(uname -m)/pkg
    CacheDir = /packages/core-any/pkg
    [core]
    Server = ${FILE_URL}
    Server = ${FTP_URL}
    Server = ${HTTP_URL}
    [extra]
    Server = ${FILE_URL}
    Server = ${FTP_URL}
    Server = ${HTTP_URL}
    #Uncomment to enable pacman -Sy yaourt
    [archlinuxfr]
    Server = http://repo.archlinux.fr/\$arch
    PACMANEOF
    # Prepare pacman
    [[ ! -d "${INSTALL_TARGET}/var/cache/pacman/pkg" ]] && mkdir -m 755 -p "${INSTALL_TARGET}/var/cache/pacman/pkg"
    [[ ! -d "${INSTALL_TARGET}/var/lib/pacman" ]] && mkdir -m 755 -p "${INSTALL_TARGET}/var/lib/pacman"
    ${PACMAN} -Sy
    ${TARGET_PACMAN} -Sy
    # Install prereqs from network (not on archboot media)
    echo -e "\nInstalling prereqs...\n$HR"
    #sed -i "s/^#S/S/" /etc/pacman.d/mirrorlist # Uncomment all Server lines
    UncommentValue S /etc/pacman.d/mirrorlist # Uncomment all Server lines
    ${PACMAN} --noconfirm -Sy gptfdisk btrfs-progs-unstable libusb-compat gnupg
    # Configure Host
    # Here we create three partitions:
    # 1. efi and /boot (one partition does double duty)
    # 2. swap
    # 3. our encrypted root
    # Note that all of these are on a GUID partition table scheme. This proves
    # to be quite clean and simple since we're not doing anything with MBR
    # boot partitions and the like.
    echo -e "format\n"
    # shred -v /dev/sda
    # disk prep
    sgdisk -Z /dev/sda # zap all on disk
    #sgdisk -Z /dev/mmcb1k0 # zap all on sdcard
    sgdisk -a 2048 -o /dev/sda # new gpt disk 2048 alignment
    #sgdisk -a 2048 -o /dev/mmcb1k0
    # create partitions
    sgdisk -n 1:0:+200M /dev/sda # partition 1 (UEFI BOOT), default start block, 200MB
    sgdisk -n 2:0:+4G /dev/sda # partition 2 (SWAP), default start block, 200MB
    sgdisk -n 3:0:0 /dev/sda # partition 3, (LUKS), default start, remaining space
    #sgdisk -n 1:0:1800M /dev/mmcb1k0 # root.gpg
    # set partition types
    sgdisk -t 1:ef00 /dev/sda
    sgdisk -t 2:8200 /dev/sda
    sgdisk -t 3:8300 /dev/sda
    #sgdisk -t 1:0700 /dev/mmcb1k0
    # label partitions
    sgdisk -c 1:"UEFI Boot" /dev/sda
    sgdisk -c 2:"Swap" /dev/sda
    sgdisk -c 3:"LUKS" /dev/sda
    #sgdisk -c 1:"Key" /dev/mmcb1k0
    echo -e "create gpg file\n"
    # create gpg file
    dd if=/dev/urandom bs=512 count=4 | gpg -v --cipher-algo aes256 --digest-algo sha512 -c -a > /root/root.gpg
    echo -e "format LUKS on root\n"
    # format LUKS on root
    gpg -q -d /root/root.gpg 2>/dev/null | cryptsetup -v --key-file=- -c aes-xts-plain -s 512 --hash sha512 luksFormat /dev/sda3
    echo -e "open LUKS on root\n"
    gpg -d /root/root.gpg 2>/dev/null | cryptsetup -v --key-file=- luksOpen /dev/sda3 root
    # NOTE: make sure to add dm_crypt and aes_i586 to MODULES in rc.conf
    # NOTE2: actually this isn't required since we're mounting an encrypted root and grub2/initramfs handles this before we even get to rc.conf
    # make filesystems
    # following swap related commands not used now that we're encrypting our swap partition
    #mkswap /dev/sda2
    #swapon /dev/sda2
    #mkfs.ext4 /dev/sda3 # this is where we'd create an unencrypted root partition, but we're using luks instead
    echo -e "\nCreating Filesystems...\n$HR"
    # make filesystems
    mkfs.ext4 /dev/mapper/root
    mkfs.vfat -F32 /dev/sda1
    #mkfs.vfat -F32 /dev/mmcb1k0p1
    echo -e "mount targets\n"
    # mount target
    #mount /dev/sda3 ${INSTALL_TARGET} # this is where we'd mount the unencrypted root partition
    mount /dev/mapper/root ${INSTALL_TARGET}
    # mount target
    mkdir ${INSTALL_TARGET}
    # mkdir ${INSTALL_TARGET}/key
    # mount -t vfat /dev/mmcb1k0p1 ${INSTALL_TARGET}/key
    mkdir ${INSTALL_TARGET}/boot
    mount -t vfat /dev/sda1 ${INSTALL_TARGET}/boot
    # Install base, necessary utilities
    mkdir -p ${INSTALL_TARGET}/var/lib/pacman
    ${TARGET_PACMAN} -Sy
    ${TARGET_PACMAN} -Su base
    # curl could be installed later but we want it ready for rankmirrors
    ${TARGET_PACMAN} -S curl
    ${TARGET_PACMAN} -S libusb-compat gnupg
    ${TARGET_PACMAN} -R grub
    rm -rf ${INSTALL_TARGET}/boot/grub
    ${TARGET_PACMAN} -S grub2-efi-x86_64
    # Configure new system
    SetValue HOSTNAME ${HOSTNAME} ${INSTALL_TARGET}/etc/rc.conf
    sed -i "s/^\(127\.0\.0\.1.*\)$/\1 ${HOSTNAME}/" ${INSTALL_TARGET}/etc/hosts
    SetValue CONSOLEFONT Lat2-Terminus16 ${INSTALL_TARGET}/etc/rc.conf
    #following replaced due to netcfg
    #SetValue interface eth0 ${INSTALL_TARGET}/etc/rc.conf
    # write fstab
    # You can use UUID's or whatever you want here, of course. This is just
    # the simplest approach and as long as your drives aren't changing values
    # randomly it should work fine.
    cat > ${INSTALL_TARGET}/etc/fstab <<FSTAB_EOF
    # /etc/fstab: static file system information
    # <file system> <dir> <type> <options> <dump> <pass>
    tmpfs /tmp tmpfs nodev,nosuid 0 0
    /dev/sda1 /boot vfat defaults 0 0
    /dev/mapper/cryptswap none swap defaults 0 0
    /dev/mapper/root / ext4 defaults,noatime 0 1
    FSTAB_EOF
    # write etwo
    mkdir -p /lib/initcpio/hooks/
    mkdir -p /lib/initcpio/install/
    cp /src/etwo_hooks /lib/initcpio/hooks/etwo
    cp /src/etwo_install /lib/initcpio/install/etwo
    mkdir -p ${INSTALL_TARGET}/lib/initcpio/hooks/
    mkdir -p ${INSTALL_TARGET}/lib/initcpio/install/
    cp /src/etwo_hooks ${INSTALL_TARGET}/lib/initcpio/hooks/etwo
    cp /src/etwo_install ${INSTALL_TARGET}/lib/initcpio/install/etwo
    # write crypttab
    # encrypted swap (random passphrase on boot)
    echo cryptswap /dev/sda2 SWAP "-c aes-xts-plain -h whirlpool -s 512" >> ${INSTALL_TARGET}/etc/crypttab
    # copy configs we want to carry over to target from install environment
    mv ${INSTALL_TARGET}/etc/resolv.conf ${INSTALL_TARGET}/etc/resolv.conf.orig
    cp /etc/resolv.conf ${INSTALL_TARGET}/etc/resolv.conf
    mkdir -p ${INSTALL_TARGET}/tmp
    cp /tmp/pacman.conf ${INSTALL_TARGET}/tmp/pacman.conf
    # mount proc, sys, dev in install root
    mount -t proc proc ${INSTALL_TARGET}/proc
    mount -t sysfs sys ${INSTALL_TARGET}/sys
    mount -o bind /dev ${INSTALL_TARGET}/dev
    echo -e "umount boot\n"
    # we have to remount /boot from inside the chroot
    umount ${INSTALL_TARGET}/boot
    # Create install_efi script (to be run *after* chroot /install)
    touch ${INSTALL_TARGET}/install_efi
    chmod a+x ${INSTALL_TARGET}/install_efi
    cat > ${INSTALL_TARGET}/install_efi <<EFI_EOF
    # functions (these could be a library, but why overcomplicate things
    SetValue () { VALUENAME="\$1" NEWVALUE="\$2" FILEPATH="\$3"; sed -i "s+^#\?\(\${VALUENAME}\)=.*\$+\1=\${NEWVALUE}+" "\${FILEPATH}"; }
    CommentOutValue () { VALUENAME="\$1" FILEPATH="\$2"; sed -i "s/^\(\${VALUENAME}.*\)\$/#\1/" "\${FILEPATH}"; }
    UncommentValue () { VALUENAME="\$1" FILEPATH="\$2"; sed -i "s/^#\(\${VALUENAME}.*\)\$/\1/" "\${FILEPATH}"; }
    echo -e "mount boot\n"
    # remount here or grub et al gets confused
    mount -t vfat /dev/sda1 /boot
    # mkinitcpio
    # NOTE: intel_agp drm and i915 for intel graphics
    SetValue MODULES '\\"dm_mod dm_crypt aes_x86_64 ext2 ext4 vfat intel_agp drm i915\\"' /etc/mkinitcpio.conf
    SetValue HOOKS '\\"base udev pata scsi sata usb usbinput keymap consolefont etwo encrypt filesystems\\"' /etc/mkinitcpio.conf
    SetValue BINARIES '\\"/usr/bin/gpg\\"' /etc/mkinitcpio.conf
    mkinitcpio -p linux
    # kernel modules for EFI install
    modprobe efivars
    modprobe dm-mod
    # locale-gen
    UncommentValue de_AT /etc/locale.gen
    locale-gen
    # install and configure grub2
    # did this above
    #${CHROOT_PACMAN} -Sy
    #${CHROOT_PACMAN} -R grub
    #rm -rf /boot/grub
    #${CHROOT_PACMAN} -S grub2-efi-x86_64
    # you can be surprisingly sloppy with the root value you give grub2 as a kernel option and
    # even omit the cryptdevice altogether, though it will wag a finger at you for using
    # a deprecated syntax, so we're using the correct form here
    # NOTE: take out i915.modeset=1 unless you are on intel graphics
    SetValue GRUB_CMDLINE_LINUX '\\"cryptdevice=/dev/sda3:root cryptkey=/dev/sda1:vfat:/root.gpg add_efi_memmap i915.i915_enable_rc6=1 i915.i915_enable_fbc=1 i915.lvds_downclock=1 pcie_aspm=force quiet\\"' /etc/default/grub
    # set output to graphical
    SetValue GRUB_TERMINAL_OUTPUT gfxterm /etc/default/grub
    SetValue GRUB_GFXMODE 960x600x32,auto /etc/default/grub
    SetValue GRUB_GFXPAYLOAD_LINUX keep /etc/default/grub # comment out this value if text only mode
    # install the actual grub2. Note that despite our --boot-directory option we will still need to move
    # the grub directory to /boot/grub during grub-mkconfig operations until grub2 gets patched (see below)
    grub_efi_x86_64-install --bootloader-id=grub --no-floppy --recheck
    # create our EFI boot entry
    # bug in the HP bios firmware (F.08)
    efibootmgr --create --gpt --disk /dev/sda --part 1 --write-signature --label "ARCH LINUX" --loader "\\\\grub\\\\grub.efi"
    # copy font for grub2
    cp /usr/share/grub/unicode.pf2 /boot/grub
    # generate config file
    grub-mkconfig -o /boot/grub/grub.cfg
    exit
    EFI_EOF
    # Install EFI using script inside chroot
    chroot ${INSTALL_TARGET} /install_efi
    rm ${INSTALL_TARGET}/install_efi
    # Post install steps
    # anything you want to do post install. run the script automatically or
    # manually
    touch ${INSTALL_TARGET}/post_install
    chmod a+x ${INSTALL_TARGET}/post_install
    cat > ${INSTALL_TARGET}/post_install <<POST_EOF
    set -o errexit
    set -o nounset
    # functions (these could be a library, but why overcomplicate things
    SetValue () { VALUENAME="\$1" NEWVALUE="\$2" FILEPATH="\$3"; sed -i "s+^#\?\(\${VALUENAME}\)=.*\$+\1=\${NEWVALUE}+" "\${FILEPATH}"; }
    CommentOutValue () { VALUENAME="\$1" FILEPATH="\$2"; sed -i "s/^\(\${VALUENAME}.*\)\$/#\1/" "\${FILEPATH}"; }
    UncommentValue () { VALUENAME="\$1" FILEPATH="\$2"; sed -i "s/^#\(\${VALUENAME}.*\)\$/\1/" "\${FILEPATH}"; }
    # root password
    echo -e "${HR}\\nNew root user password\\n${HR}"
    passwd
    # add user
    echo -e "${HR}\\nNew non-root user password (username:${USERNAME})\\n${HR}"
    groupadd sudo
    useradd -m -g users -G audio,lp,optical,storage,video,games,power,scanner,network,sudo,wheel -s /bin/bash ${USERNAME}
    passwd ${USERNAME}
    # mirror ranking
    echo -e "${HR}\\nRanking Mirrors (this will take a while)\\n${HR}"
    cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.orig
    mv /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.all
    sed -i "s/#S/S/" /etc/pacman.d/mirrorlist.all
    rankmirrors -n 5 /etc/pacman.d/mirrorlist.all > /etc/pacman.d/mirrorlist
    # temporary fix for locale.sh update conflict
    mv /etc/profile.d/locale.sh /etc/profile.d/locale.sh.preupdate || true
    # yaourt repo (add to target pacman, not tmp pacman.conf, for ongoing use)
    echo -e "\\n[archlinuxfr]\\nServer = http://repo.archlinux.fr/\\\$arch" >> /etc/pacman.conf
    echo -e "\\n[haskell]\\nServer = http://www.kiwilight.com/\\\$repo/\\\$arch" >> /etc/pacman.conf
    # additional groups and utilities
    pacman --noconfirm -Syu
    pacman --noconfirm -S base-devel
    pacman --noconfirm -S yaourt
    # sudo
    pacman --noconfirm -S sudo
    cp /etc/sudoers /tmp/sudoers.edit
    sed -i "s/#\s*\(%wheel\s*ALL=(ALL)\s*ALL.*$\)/\1/" /tmp/sudoers.edit
    sed -i "s/#\s*\(%sudo\s*ALL=(ALL)\s*ALL.*$\)/\1/" /tmp/sudoers.edit
    visudo -qcsf /tmp/sudoers.edit && cat /tmp/sudoers.edit > /etc/sudoers
    # power
    pacman --noconfirm -S acpi acpid acpitool cpufrequtils
    yaourt --noconfirm -S powertop2
    sed -i "/^DAEMONS/ s/)/ @acpid)/" /etc/rc.conf
    sed -i "/^MODULES/ s/)/ acpi-cpufreq cpufreq_ondemand cpufreq_powersave coretemp)/" /etc/rc.conf
    # following requires my acpi handler script
    echo "/etc/acpi/handler.sh boot" > /etc/rc.local
    # time
    pacman --noconfirm -S ntp
    sed -i "/^DAEMONS/ s/hwclock /!hwclock @ntpd /" /etc/rc.conf
    # wireless (wpa supplicant should already be installed)
    pacman --noconfirm -S iw wpa_supplicant rfkill
    pacman --noconfirm -S netcfg wpa_actiond ifplugd
    mv /etc/wpa_supplicant.conf /etc/wpa_supplicant.conf.orig
    echo -e "ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=network\nupdate_config=1" > /etc/wpa_supplicant.conf
    # make sure to copy /etc/network.d/examples/wireless-wpa-config to /etc/network.d/home and edit
    sed -i "/^DAEMONS/ s/)/ @net-auto-wireless @net-auto-wired)/" /etc/rc.conf
    sed -i "/^DAEMONS/ s/ network / /" /etc/rc.conf
    echo -e "\nWIRELESS_INTERFACE=wlan0" >> /etc/rc.conf
    echo -e "WIRED_INTERFACE=eth0" >> /etc/rc.conf
    echo "options iwlagn led_mode=2" > /etc/modprobe.d/iwlagn.conf
    # sound
    pacman --noconfirm -S alsa-utils alsa-plugins
    sed -i "/^DAEMONS/ s/)/ @alsa)/" /etc/rc.conf
    mv /etc/asound.conf /etc/asound.conf.orig || true
    #if alsamixer isn't working, try alsamixer -Dhw and speaker-test -Dhw -c 2
    # video
    pacman --noconfirm -S base-devel mesa mesa-demos
    # x
    #pacman --noconfirm -S xorg xorg-xinit xorg-utils xorg-server-utils xdotool xorg-xlsfonts
    #yaourt --noconfirm -S xf86-input-wacom-git # NOT NEEDED? input-wacom-git
    #TODO: cut down the install size
    #pacman --noconfirm -S xorg-server xorg-xinit xorg-utils xorg-server-utils
    # TODO: wacom
    # environment/wm/etc.
    #pacman --noconfirm -S xfce4 compiz ccsm
    #pacman --noconfirm -S xcompmgr
    #yaourt --noconfirm -S physlock unclutter
    #pacman --noconfirm -S rxvt-unicode urxvt-url-select hsetroot
    #pacman --noconfirm -S gtk2 #gtk3 # for taffybar?
    #pacman --noconfirm -S ghc
    # note: try installing alex and happy from cabal instead
    #pacman --noconfirm -S haskell-platform haskell-hscolour
    #yaourt --noconfirm -S xmonad-darcs xmonad-contrib-darcs xcompmgr
    #yaourt --noconfirm -S xmobar-git
    # TODO: edit xfce to use compiz
    # TODO: xmonad, but deal with video tearing
    # TODO: xmonad-darcs fails to install from AUR. haskell dependency hell.
    # switching to cabal
    # fonts
    pacman --noconfirm -S terminus-font
    yaourt --noconfirm -S webcore-fonts
    yaourt --noconfirm -S fontforge libspiro
    yaourt --noconfirm -S freetype2-git-infinality
    # TODO: sed infinality and change to OSX or OSX2 mode
    # and create the sym link from /etc/fonts/conf.avail to conf.d
    # misc apps
    #pacman --noconfirm -S htop openssh keychain bash-completion git vim
    #pacman --noconfirm -S chromium flashplugin
    #pacman --noconfirm -S scrot mypaint bc
    #yaourt --noconfirm -S task-git stellarium googlecl
    # TODO: argyll
    POST_EOF
    # Post install in chroot
    #echo "chroot and run /post_install"
    chroot /install /post_install
    rm /install/post_install
    # copy grub.efi file to the default HP EFI boot manager path
    mkdir -p ${INSTALL_TARGET}/boot/EFI/Microsoft/BOOT/
    mkdir -p ${INSTALL_TARGET}/boot/EFI/BOOT/
    cp ${INSTALL_TARGET}/boot/grub/grub.efi ${INSTALL_TARGET}/boot/EFI/Microsoft/BOOT/bootmgfw.efi
    cp ${INSTALL_TARGET}/boot/grub/grub.efi ${INSTALL_TARGET}/boot/EFI/BOOT/BOOTX64.EFI
    cp /root/root.gpg ${INSTALL_TARGET}/boot/
    # NOTES/TODO

  • (Arch) Linux Myths

    I have recently noticed that online forums and Linux user communities in particular are prone to developing what I'd like to call "technology myths".
    Most of the problems and solutions given on forums are anecdotal in nature. Problems are rarely sourced to the actual code and suggestions are often casual or incomplete which is of course natural for this kind of communication. However, as certain solutions are being repeated without clear feedback, some notions take deeper roots in the collective consciousness thus becoming myths. Let me illustrate with an example.
    How often have you seen people posting glxgears results? How often have you seen people replying "glxgears is not a benchmark"? Could you actually explain why it's not suitable to be one? The explanation is out there.
    Another example could be the myth that exporting INTEL_BATCH=1 increases performance on Intel integrated GPUs. I have seen this in circulation for a long time, despite the fact that the actual code that could be triggered by this environment variable has been removed a long time ago.
    As Arch Linux is rolling-release and a lot of code is being replaced rather rapidly, old and tried solutions are likely to become obsolete fast. I'd like to ask the Community to share their examples of other widely circulated myths and help keep an updated and sourced list of them (https://wiki.archlinux.org/index.php/Myths) so others will not waste their time trying solutions which are sure to fail.

    In my experience, outdated wiki pages tend to propagate this stuff, along with blog entries. The trouble with blog entries is that they're often fire-and-forget, which means that solutions that might have been necessary a while ago are now unsuitable or unnecessary.
    Wiki pages have no such excuse, being more fluid than blogs posts. This is particularly prevalent on the Arch Wiki, as Arch is a distribution with a small number but a large variety of (mostly) technically-experienced users who will often go to great lengths to increase performance or to accomodate for Rube Goldberg machine-like hardware or network setups. Thus, there are a lot of hacks on obscure pages (not, say, the Beginner's Guide or the major pages).
    What we need is a major overhaul and review of many of the shorter and more obscure wiki pages, such as any of the ones under Request:Correction and Request:Expansion. I've "rescued" a few pages from this purgatory, but many pages have sat there for months or years and I do not have the experience or knowledge to improve them. I think that we could gain a great deal from more community awareness about improving the wiki and trying to encourage people to edit more. Rather than the same editors working on more mainstream pages and ignoring or barely touching the more arcane ones, it might be preferable to have people with little editing experience but more technical experience to take a look at some of the pages, capitalizing on the cumulative knowledge of our userbase a bit more.
    Just a thought.

  • Arch Linux (and general Linux) graphics and artists community

    TheBodziO has started a discussion about the (Arch) linux graphics community. That gives me an idea. It would be nice to create an online (sub)community dedicated to graphics, DTP, and photography centered around Arch Linux. For now, I can only offer some ideas, my experience in graphics and DTP, and lots of hosting space on a non-dedicated server.
    The ideas for the (sub)community:
    * an open forum for discussion, not just Arch-related but 'graphics on Linux' in general
    * a wiki for Linux artists
    * a gallery (d'oh!)
    * an Arch LiveCD for graphics artists
    * a dedicated graphics repository
    If you have suggestions and/or are interested to participate, please post below.

    For start I want to say that I'm content that the new thread have been started to discuss the matters of cooperation of designers and developers communities. It's a good sign.
    As foxbunny said the whole idea is *much* more than another art repository. I thought about creating a common ground - a meeting point - for both developers and designers. Developers have the skills to code. Designers have needs and ideas how to speed up/ease their work. Developers create tools that designers use and designers provide feedback and ideas. What I think free software world lacks is an organized way to provide the pan-project and pan-distro connection between these groups.
    To illustrate the whole thing on a simple example: let's assume that I'd love to have a possibility to lock some operations on elements of my project with password. It's because my work will be given to someone else who will be responsible for placing a text in proper places on the design. I don't want to see him to move or delete something accidentally. It's possible that also some other designers will find that feature useful too. Then maybe some developer will be willing to implement that. The trouble is, that if I propose that feature and encourage its implementation in gimp, I would have to repeat the same process for scribus for example. But the idea is common. I want to state it once and see who will catch the bait . To some extent it will promote deeper integration between different projects.
    Today graphic designers have the tools for editing vector graphics, raster graphics some page design tools. These tools often use the same methodologies! There are bezier curves in gimp, inkscape, scribus... whatever yet they are implemented redundantly. Perhaps thanks to one thoughts sharing panel it will be possible to come with some common solutions. Maybe some common libraries or platforms will emerge in time? I think that mentioned meeting point will keep us close to unix philosophy: do it for a single purpose and do it well. In other words I think that it will allow us to have powerful building blocks on which something even better than today state of the art apps could be build.
    I want to at least start some discussion about the issue. Hopefully this will be only a beginning.
    First I want to ask: do you believe that a subcommunity of archers that would be responsible for communication between the developers and designers would be useful? If so then we could more precisely state our goals and code of conduct.
    Designers experience is of the essence if we want to make free software usable for demanding "art" community.
    Last edited by TheBodziO (2007-10-28 20:35:15)

  • Recommend Virtualization Software on Arch Linux 64-bit

    I have my Arch Linux 64-bit workstation and need to test out some virtual guest machines and was wondering if anyone on Arch Linux has ever had any results between Oracle's 'VirtualBox' or 'VMware' suite. I heard good things about both. VMware has a crazy / confusing amount of options and different versions which appear to be more 'enterprise' geared but this could be the fact that it's just been around longer and more known commonly known.
    Thanks for any feedback / suggestions on what I should use.

    http://www.virtualbox.org/wiki/VBox_vs_Others
    Of course, take it with a grain of salt since it is from Virtualbox website.
    http://stackoverflow.com/questions/6301 … virtualbox
    Some slightly old benchmarks there.  Vbox is in version 3 now, not 2.  But probably somewhere out there you could google some benchmarks if that is what you are interested in.
    As far as personal experience, I used to use Qemu, then VMware, and now been on Virtualbox for a couple years.  I like having a little pet WinXP kept in its cage   It works fine with me. I switched off of VMware because I liked the Seamless Mode in Vbox and Vbox has experimental D3D support

  • Arch Linux based live gaming distro 'lg-live 0.9.5' released

    Hey all,
    first of all, sorry if this is the wrong subforum to post this in but this one seemed most appropriate.
    I would like to announce the release of live.linuX-gamers 0.9.5, an Arch Linux based live gaming distro. It was made using Archiso and of course a big investment of time. It is going to be officially released on LinuxTag 2009 in Berlin (in three days) but I thought I'd give it to you guys now.
    It is a very specialized distro: It contains lots of popular games, installs proprietary graphics card drivers out-of-the-box and provides you with a nice, clean interface for launching games and a few basic applications.
    I don't want to over-advertise this so I'll just say: Please go ahead and test it if you feel like it, maybe mirror it or seed the torrents a bit, post feedback or thoughts, insult me or threaten me, etc.
    If you want to give it a spin or see which games are on it, go over to http://live.linux-gamers.net and grab yourself an ISO/USB image.
    Thank you, Arch Linux, for making this possible.

    karol wrote:
    capoeira wrote:is there a way to install other games when using a USB-Device?
    This thread is rather old, but yeah, it's possible to remaster this "meta-distro" and add/remove games you like: http://github.com/svenstaro/lglive
    BTW, there's a new release http://live.linux-gamers.net/
    Ohh what a positive surprise to have a girl here,
    yea, i downloaded the DVD this week. I'm no gamer, I gamed in the 90ies on a Amiga 500 last time. But sometimes I get a wich to play a bit, so I found this DVD (I don't want to instal games to my production-distro and don't want to instal Catalyst either for my card)
    I want to play 3d first-person games but those ego-shooters i don't enjoy. Its running around shooting on everything and diying a hundred times. I want something more realistic, so I found penumbra and amnesia and would like to install it with this DVD. (if anyone has tips for realistic 3d-games, action-adventures, etc. I would apreciate tips)
    I will have a look at your link, thanks a lot

  • Bootstrap a base Arch Linux on another distro

    Hi!
    I needed to install an Arch Linux environment on a Debian server, so I searched the wiki and found this page:
    http://wiki.archlinux.org/index.php/Archbootstrap
    Unfortunately, the script is outdated. So I wrote a new one:
    http://tokland.googlecode.com/svn/trunk … otstrap.sh
    (tested only on Debian Lenny)
    $ sudo bash arch-bootstrap.sh myarch i686
    Now, my questions:
    1) is there another script that performs this task better?
    2) if not, can you please give some feedback so as to update the wiki with (a -hopefully- more polished version of) this script?
    Last edited by tokland (2010-02-09 21:27:31)

    Hi,
    I'm working on a script.
    It's working with pacman-static.
    pacman, in version 3.3.0, introduce xz archive format support and now, some packages use this format (mkinitcpio-0.6.3-1-any.pkg.tar.xz)
    So, my script is endding with pacman-static error (unrecognized archive format) !
    Where can I find the 3.3.0 (or more) pacman-static ?
    Here's the script (it's a first step...) :
    #!/bin/bash
    # install an Arch in the specified location (debbootstrap like)
    # work over pacman-static
    # must run on GNU/Linux systems
    # http://wiki.archlinux.org/index.php/Install_from_Existing_Linux
    # http://wiki.archlinux.fr/install/chroot?DokuWiki=153b0c6847435682de50a6061e6f75a4
    [ "${1}" ] || { echo "usage: $( basename $0 ) chrootdir [packages]" >/dev/stderr && exit 1; }
    B='\033[29;1m'
    b='\033[0m'
    # load variables defined in configuration file
    echo -e "${B}load configuration file...${b}"
    . /usr/local/etc/$( basename $0 ).conf || exit $?
    # test packages cache
    echo -e "${B}test packages cache...${b}"
    [ "${abs_cache}" ] || abs_cache=/var/cache/pacman/pkg
    [ -d "${abs_cache}" ] || { mkdir -vp ${abs_cache} || exit $?; }
    touch ${abs_cache}/$( basename $0 ) && rm ${abs_cache}/$( basename $0 ) || exit $?
    # make minimal chroot for pacman
    echo -e "${B}make minimal chroot...${b}"
    abs_chroot=${1}
    mkdir -v ${abs_chroot} || exit $?
    mkdir -vp ${abs_chroot}/etc/pacman.d
    mkdir -vm 1777 ${abs_chroot}/tmp
    mkdir -vp ${abs_chroot}/usr/bin
    mkdir -vp ${abs_chroot}/var/lib/pacman
    # install pacman.static in chroot
    abs_static_package=$( find ${abs_cache} | grep pacman-static )
    if [ ! "${abs_static_package}" ]
    then
    # download it
    echo -e "${B}download pacman...${b}"
    [ "${abs_static_host}" ] || abs_static_host="http://repo.archlinux.fr/i686"
    abs_static_package=$( curl -sSL ${abs_static_host} | egrep -io 'href="pacman-static[^"]+\.pkg\.tar\.gz"' | awk -F '"' '{print $2}' )
    [ "${abs_static_package}" ] && abs_static_package=${abs_cache}/${abs_static_package} || exit $?
    curl --progress-bar ${abs_static_host}/${abs_static_package} > ${abs_static_package} || exit $?
    fi
    echo -e "${B}install pacman...${b}"
    mkdir -p ${abs_chroot}/tmp/pacman
    tar vxzf ${abs_static_package} -C ${abs_chroot}/tmp/pacman || exit $?
    cp -v ${abs_chroot}/tmp/pacman/usr/bin/pacman.static ${abs_chroot}/usr/bin/
    rm -vrf ${abs_chroot}/tmp/pacman
    # install pacman configuration in chroot
    echo -e "${B}configure pacman...${b}"
    [ "${abs_repository}" ] || abs_repository='http://mirrors.kernel.org/archlinux/$repo/os/i686'
    abs_pacman_conf=${abs_chroot}/tmp/pacman.conf
    echo "
    [core]
    Server = ${abs_repository}
    [extra]
    Server = ${abs_repository}
    [community]
    Server = ${abs_repository}
    " > ${abs_pacman_conf}
    # install the core
    echo -e "${B}install the core...${b}"
    ${abs_chroot}/usr/bin/pacman.static \
    --sync \
    --refresh \
    --root ${abs_chroot} \
    --cachedir ${abs_cache} \
    --config ${abs_pacman_conf} \
    --logfile /dev/null \
    --verbose \
    --noprogressbar \
    base || exit $?

  • Mondo rescue and mindi patched for Arch Linux

    Mondo rescue is a disaster recovery tool.
    Last year, I wanted to test mondo rescue for the first time, but I found there was no official package and no PKGBUILD  in AUR.
    So I had to build one and upload it to AUR. But soon I found there were a lot of problems related to the lack of compatibility with Arch Linux.
    I had to deep in the code and made some patches that turned it usable in Arch system.
    Mondo version 2.2.9.5-2, and mindi-2.0.7.6-3 are now full compatible with Arch (at least for me).
    That's why I'm asking Arch users (if someone interested) to test mondo and mindi PKGBUILD's and give your feedback to help me to improve it.
    mondo AUR - http://aur.archlinux.org/packages.php?ID=38366
    mindi AUR - http://aur.archlinux.org/packages.php?ID=38365
    mindi-busybox - http://aur.archlinux.org/packages.php?ID=38364
    mondorescue website - http://www.mondorescue.org/
    Thank's for your feedback.

    You are right! The server is down :-(
    This server was an alternative I found for the original one that was also down at that time.
    Now http://www.hello-penguin.com/software.htm is up again, but I had some problems downloading source code with pacman.
    This is a little frustrating when servers are up and down intermittently.
    So, I made a mirror in my own server where buffer-1.19.tar.gz can be downloaded too, and uploaded a new version PKBUILD to AUR (http://aur.archlinux.org/packages.php?ID=38363).
    PKGBUILD now downloads source code from this alternative server, but if you wish, you can edit PKGBUILD and chose the original one (in the commented line).
    Hope this can be solved now.

  • Arch Linux as SteamOS?

    Howdy all,
    I have been quite busy the last year or so and took a break from Arch Linux, but with Borderlands 2 gaining GNU/Linux support (and SteamOS) a day or two ago I immediately installed SteamOS to give it a try.
    While it is certainly a bit buggy, I do enjoy how tightly integrated Steam and relevant compatibilities are currently setup. At the same time I would love to get the same setup with Arch Linux (while also further customizing my system and using Btrfs) if at all possible. As, for a general purpose OS, Debian stable definitely has some drawbacks from my perspective and for my usage.
    Part of the reason for my post here is I am having trouble sourcing information on exactly what SteamOS has changed compared to vanilla Debian Wheezy. I noted the SteamOS AUR packages, but I want to make sure I can get the full set of changes before I spend the time trying to get a perfect Arch Linux "SteamOS" setup going.
    Anyway, that is the gist of it. If anyone has any insight or can point me in the right direction I would appreciate it. I got spoiled on Arch's documentation and I am having a hard time finding anything as coherent for SteamOS.
    Here is where I have looked so far:
    https://wiki.archlinux.org/index.php/Steam
    https://aur.archlinux.org/packages/?O=0&K=steamos
    http://steamcommunity.com/groups/steamu … ussions/1/
    (Edit)
    http://steamcommunity.com/groups/steamu … 462768036/ <-- Feedback from an Archer regarding potential speed boost compared to SteamOS and insights about general compatibility.
    http://steamcommunity.com/groups/steamu … 741989999/ <-- FAQ with major changes, maybe these are the only ones to be concerned with?
    Thanks,
    Last edited by AdamT (2014-10-03 02:21:10)

    AdamT wrote:As, for a general purpose OS, Debian stable definitely has some drawbacks from my perspective and for my usage.
    Just as an aside, SteamOS isn't designed to be a general purpose OS. It is designed with gaming in mind, in particular, gaming from a distance (see 10ft interface). A lot of the changes they have made to their xserver, xcompmgr (steamos-compositor), and possibly other packages have been done with this in mind, making them, as I understand it, less suitable for regular desktops.
    There is no reason you can't install steam on Arch and have it start in steamos mode (which I believe is slightly different to bigpicture mode, and can be launched by passing the '-steamos' flag to steam). You could even set Arch up to auto-login, startx with your preferred DE/WM, and run steam if you really want to. You may not get the same optimized experience that you would get with steamOS, but you would still be able to use it as a desktop as well as a living room gaming PC, if that is what you want to achieve.
    Last edited by WorMzy (2014-10-14 16:34:22)

  • Arch Linux WHERETO

    I coined the term WHERETO to refer to a collection of links to Linux HOWTOs.  I've written up a preliminary draft of an Arch Linux WHERETO and placed it in the wiki:
    http://wiki.archlinux.org/index.php/Arc … %20WHERETO
    Comments and feedback welcome. Feel free to add to it or to edit any descriptions. I would like to keep it relatively clean, that is, no links to stupid documents, and few links to documents that say the same thing. If you know of a link that better describes how to do things than one of the links in the WHERETO, by all means replace it. If you have links to topics not covered, add it. If you've read some of the HOWTOs listed (I only gave some of them a cursory glance) and find they aren't terribly useful, remove the links.
    Ideally, this will be the document people go to first when they need help. The last section of the WHERETO describes other places to look for help. I made sure to emphasize the need to *search*.
    Dusty

    Sequence of events, (tongue in cheek)
    for an Arch Wanabee, seems to be Read Distrowatch, grab Arch from download page, rejoice in your newfound leetness, fubar the install, go look for help in the forums.
    Maybe put a link to this on the iso download page and suggest folks make use of it while Arch is downloading. Could go some way to oiling the machine

  • Dual boot Windows 7 (64) and Arch Linux (64) problems

    Hello:
    I am new to Arch Linux and just finished installing the 64bit on my laptop. It had a prebuilt Windows 7 (64) installed which I kept but split the hdd from 160Gb to 80Gb and 80Gb. I installed Arch there and set 4 partitions, all of them as Logical - a 64 MB ext2 /boot partition; a 512 MB swap partition; a 15 GB root partition; and the rest as my /home partition. My partitions look like this:
    Disk Drive: /dev/sda
    Size: 160041885696 bytes, 160.0 GB
    Heads: 255 Sectors per Track: 63 Cylinders: 19457
    Name Flags Part Type FS Type [Label] Size (MB)
    sda1 Primary Unknown (27) 12889.02
    sda2 Boot Primary NTFS 106.93
    sda3 Primary NTFS [] 73915.11*
    sda5 Logical Linux ext2 65.81*
    sda6 Logical Linux 509.97*
    sda7 Logical Linux ext2 15002.92*
    sda8 Logical Linux ext2 57549.55*
    The install was succesful(this was running from the core install cd) and I installed GRUB to my /boot but when I restarted it loaded Windows 7. I have used Knoppix USB disc to boot and see my Arch Linux install files and edited the /boot/gur/menu.lst file.
    In Windows I installed EasyBCD 1.7.2 and tried to get NeoGrub bootloader working as a dual boot. I tried getting rid of the boot flag for Windows with cfdisk and setting it to my (Logical) sda5. That did not work. So far the only way I have booted into my Arch Linux install has been by going to the Live CD, choosing "Boot from Existing Linux Install" and editing the command files there.
    root (hd0,4)
    kernel /vmlinuz26 root=/dev/sda3 ro
    initrd /kernel26.img
    My goal is to get a dual boot working for Windows 7 and Arch Linux 64 and continue installing the Xorg and KDE to Arch. I just don't know what the problem is here. I don't mind reinstalling Arch if something went wrong, but I would like to keep my Windows running in order and add Arch on.
    Any help would be greatly appreciated.

    I ran the LiveCD and chose "Install to MBR hd0". I ended up with this:
    setup hd(0,1)
    Checking if "/boot/grub/stage1" exists.....yes
    Checking if "/boot/grub/iso9660_stage1_5" exists.....yes
    Running "embed /boot/grub/iso9660_stage1_5 (hd0,1)".....failed(this is not fatal)
    Running "embed /boot/grub/iso9660_stage1_5 (hd16)".....failed(this is not fatal)
    Running "install /boot/grub/stage1 d (hd0,1) /boot/grub/stage2 p (hd0,1) boot/grub/menu.lst".....failed
    Error 31: File is not sector aligned
    My entry for Windows into the menu.lst looks like this:
    # (0) Arch Linux x64
    title Arch Linux x64
    root (hd0,4)
    kernel /vmlinuz26 root=/dev/disk/by-uuid/3841273c-d91e-41d6-9dbf-716a15d03a01 ro
    initrd /kernel26.img
    # (1) Arch Linux x64
    title Arch Linux x64 Fallback
    root (hd0,4)
    kernel /vmlinuz26 root=/dev/disk/by-uuid/3841273c-d91e-41d6-9dbf-716a15d03a01 ro
    initrd /kernel26-fallback.img
    # (2) Windows 7
    title Windows 7
    rootnoverify (hd0,0)
    makeactive
    chainloader +1

  • [GUIDE] How to get MapleStory working in Arch Linux

    MapleStory is a free-of-charge, 2D, side-scrolling massively multiplayer online role-playing game developed by the South Korean company Wizet. Several versions of the game are available for specific countries or regions, and each is published by various companies such as Wizet and Nexon. Although playing the game is free, character appearances and gameplay enhancements can be purchased from the "Cash Shop" using real money. MapleStory has a combined total of over 50 million subscriber accounts in all of its versions. MapleStory North America (Global), for players mainly in North America and outside of East Asia, Southeast Asia and Europe, has over three million players.
    In the game, players travel the "Maple World", defeating monsters and developing their characters' skills and abilities as is typical in role-playing games. Players can interact with others in many ways, such as through chatting, trading, and playing minigames. Groups of players can band together in parties to hunt monsters and share the rewards. Players can also join a guild to interact more easily with each other.
    I am an avid mapler myself, however, I am also an avid archer! For some time, I have wanted to get MapleStory working on Arch Linux in some way, but nothing seemed to work. As you might have guessed by now, recently, while playing around with VirtualBox, I discovered a method to get MapleStory working on it! Though in this method you won't actually have MapleStory running on Arch Linux, you'll have it running on a VirtualBox Windows virtual machine, that is still pretty good compared to other people's experiences.
    I hope there are at least a few maplers on this forum, and if there aren't, I hope that someone will port this post over to other Linux, or even MapleStory, forums. Anyways, let's begin.
    1. Download and install a version of Virtual Box that is version 3.0+. The reason for this is that, only versions 3.0+ support an experimental DirectX Driver with 3D acceleration that is required for MapleStory to run.
    2. Create a Windows Virtual Machine, add a hard disk to it, and install and update Windows on it(preferably Windows XP, as it uses less resources than other contemporary Windows installations).
    3. Once you have done all you needed and wanted on that Windows installation, restart it, boot it into safe mode by holding F8 at the boot, and wait until the desktop is fully loaded.
    4. After you are at the desktop, go to "Devices" at the top of the menu of the Windows virtual machine, and select "Install Guest Additions...". Wait until Guest Additions finishes installing, and when VirtualBox asks you if you want to mount the disk containing the Guest Additions on the virtual machine, say "Yes".
    5. Run the main executable on the disk that doesn't have amd64 or x86 following its name. Follow the instructions it gives you, and when it asks you what components to install, make sure both of the boxes it shows you are checked.
    6. After the install is completed, the virtual machine will restart. After it restarts, shut it down.
    7. Congratulations! You now have DirectX installed on your VirtualBox virtual machine! Now you need to activate the "3D Acceleration", that enables it.
    8. In the VirtualBox main window, make sure you have your machine with Windows selected. Then, click on "Machine", and then "Settings...", at the top. A new window should pop up. On the left hand side, click on the display panel, and in the new settings section, tick Enable 3D Acceleration. Click "OK", to save the settings.
    9. Start your Windows virtual machine, install MapleStory just as you would on a normal windows computer, and run MapleStory.
    Notes: This way of running MapleStory is slower than by running it normally, on a normal windows computer. Also, try to not interact with your Linux desktop while playing MapleStory, because this can cause HackShield to shut down MapleStory, due to the fact that it believes there is a hacking attempt.
    If any of you port this guide to any other place on the web, please, credit me, neovaysburd5.
    For any further questions or inquiries, this goes to all of you, please contact me at [email protected].
    Last edited by neovaysburd5 (2009-08-19 16:51:31)

    Alright, I've posted it in the wiki. I don't know if it meets the Arch Linux wiki standards, so if there is absolutely anything wrong with it, please fix it right away. Don't even ask my permission.
    http://wiki.archlinux.org/index.php/MapleStory

  • [solved] Arch linux access point with multiple interfaces for the NAT

    Hi, I have a router running Arch linux. It is connected via LAN (let's call it eth0) to the internet. It has a second LAN interface, eth1, and a wireless interface in master mode, wlan0.
    Now, Everything works perfectly except providing network connectivity on eth1 and wlan0 simultaneously. I followed the guide in the "Internet share" wiki article and use dnsmasq/hostapd for the AP. It appears as if all traffic from the router is sent to the wlan0 interface, even if it came in through eth1 (for example, dhcp requests). I cannot really find information how to solve this. The words "bonding" and "iptables" are floating around, but there is not really an easy to understand tutorial for this.
    What do I need to do to use both the eth1 and wlan0 interface (for different clients!) on my router?
    Best regards, and thank you in advance
    Jan Oliver
    /e: This seems to be my problem: http://www.novell.com/support/kb/doc.php?id=7000318 How do I solve this using the usual iptables? (The way described in the article doesn't work: "RTNETLINK answers: No such process" errors.)
    Last edited by janoliver (2013-09-25 22:24:53)

    Or you could bridge eth1 and wlan0, and make dnsmasq bind/listen on that bridge...

  • [SOLVED] (U)EFI dualboot Win7 Arch Linux - partitions gone - recovery?

    Hi everybody,
    I have a slight problem with my (U)EFI dualboot system (Windows 7 and Arch Linux) which used to be configured using rEFInd like it is described in my previous post:
    https://bbs.archlinux.org/viewtopic.php … 6#p1300356
    <EFI PARTITION> is /dev/sda1 and I used to boot via <EFI PARTITION>\EFI\Boot\Bootx64.efi which then successfully either loaded Windows or Linux kernel.
    Thanks to my own stupidity and a recent update of refind I decided to copy the new driver, font and icon folders to the <EFI PARTITION> in order to be up-to-date.
    After doing so, the rEFInd boot menu had a third icon which said "Boot via \EFI\Boot\Bootx64.efi" and if I clicked on it a second rEFInd boot menu appeared with only the two icons for Windows 7 and Arch.
    So I figured I could delete Bootx64.efi and ultimately did so, unfortunately. Afterwards I couldn't boot neither Windows nor Linux anymore.
    Following this I went through my noumerous USB boot sticks in order to be able to recover the Bootx64.efi. Unfortunately the first USB stick was a Windows XP one which has the plop bootloader alongside:
    http://www.plop.at/en/bootmanager/thebootmanager.html
    Out of couriousity I entered this bootloader and found HDA and HDB (I assume resembling my SSD and my USB stick).
    To my knowledge I didn't change anything but after entering the bootloader again I just found HDA left, HDB seemed to be gone. But I didn't think of anything bad happening yet.
    Then I found a working Archiso which I booted and using blkid I couldn't find the partitions of my earlier system anymore, only its device and the USB stick:
    /dev/sda: PTUUID="..." PTTYPE="gpt"
    /dev/sdb1: UUID="..." LABEL="ARCH_201312" TYPE="..." and so on
    /dev/sdb2: SEC_TYPE="msdos" and so on
    Even within the EFI shell I could not detect any internal drive anymore (only fs0: which is the USB stick)
    Using Archiso onboard tool testdisk I could find the old partitions. The correct result of the GPT from testdisk is:
    Fri Jul 4 08:45:25 2014
    Command line: TestDisk
    TestDisk 6.14, Data Recovery Utility, July 2013
    Christophe GRENIER <[email protected]>
    http://www.cgsecurity.org
    OS: Linux, kernel 3.12.1-3-ARCH (#1 SMP PREEMPT Tue Nov 26 11:17:02 CET 2013) x86_64
    Compiler: GCC 4.8
    Compilation date: 2013-08-06T08:42:31
    ext2fs lib: 1.42.8, ntfs lib: libntfs-3g, reiserfs lib: 0.3.0.5, ewf lib: none
    /dev/sda: LBA, HPA, LBA48, DCO support
    /dev/sda: size 500118192 sectors
    /dev/sda: user_max 500118192 sectors
    /dev/sda: native_max 500118192 sectors
    /dev/sda: dco 500118192 sectors
    Warning: can't get size for Disk /dev/mapper/control - 0 B - 1 sectors, sector size=512
    Hard disk list
    Disk /dev/sda - 256 GB / 238 GiB - CHS 31130 255 63, sector size=512 - Samsung SSD 840 PRO Series, S/N:S12RNEAD322171L, FW:DXM04B0Q
    Disk /dev/sdb - 2013 MB / 1920 MiB - CHS 1022 62 62, sector size=512 - SMI USB DISK, FW:1100
    Disk /dev/sdc - 4210 MB / 4015 MiB - CHS 1020 130 62, sector size=512 - Generic Flash Disk, FW:8.07
    Disk /dev/mapper/arch_root-image - 1478 MB / 1410 MiB - 2887680 sectors, sector size=512
    Disk /dev/dm-0 - 1478 MB / 1410 MiB - 2887680 sectors, sector size=512
    Partition table type (auto): Intel
    Disk /dev/sda - 256 GB / 238 GiB - Samsung SSD 840 PRO Series
    Partition table type: EFI GPT
    New options :
    Dump : No
    Align partition: Yes
    Expert mode : Yes
    Analyse Disk /dev/sda - 256 GB / 238 GiB - CHS 31130 255 63
    hdr_size=92
    hdr_lba_self=1
    hdr_lba_alt=500118191 (expected 500118191)
    hdr_lba_start=34
    hdr_lba_end=500118158
    hdr_lba_table=2
    hdr_entries=128
    hdr_entsz=128
    hdr_size=92
    hdr_lba_self=500118191
    hdr_lba_alt=1 (expected 1)
    hdr_lba_start=34
    hdr_lba_end=500118158
    hdr_lba_table=500118159
    hdr_entries=128
    hdr_entsz=128
    Trying alternate GPT
    Current partition structure:
    Trying alternate GPT
    search_part()
    Disk /dev/sda - 256 GB / 238 GiB - CHS 31130 255 63
    FAT32 at 0/32/33
    FAT1 : 4110-6150
    FAT2 : 6151-8191
    start_rootdir : 8192 root cluster : 2
    Data : 8192-2097151
    sectors : 2097152
    cluster_size : 8
    no_of_cluster : 261120 (2 - 261121)
    fat_length 2041 calculated 2041
    set_FAT_info: name from BS used
    FAT32 at 0/32/33
    MS Data 2048 2099199 2097152 [NO NAME]
    FAT32, blocksize=4096, 1073 MB / 1024 MiB
    NTFS at 146/251/42
    filesystem size 249593856
    sectors_per_cluster 8
    mft_lcn 786432
    mftmirr_lcn 2
    clusters_per_mft_record -10
    clusters_per_index_record 1
    NTFS part_offset=1209008128, part_size=127792054272, sector_size=512
    NTFS partition cannot be added (part_offset<part_size).
    NTFS at 146/251/42
    filesystem size 249593856
    sectors_per_cluster 8
    mft_lcn 786432
    mftmirr_lcn 2
    clusters_per_mft_record -10
    clusters_per_index_record 1
    MS Data 2361344 251955199 249593856
    NTFS, blocksize=4096, 127 GB / 119 GiB
    recover_EXT2: s_block_group_nr=0/160, s_mnt_count=1318/4294967295, s_blocks_per_group=32768, s_inodes_per_group=8192
    recover_EXT2: s_blocksize=4096
    recover_EXT2: s_blocks_count 5242880
    recover_EXT2: part_size 41943040
    MS Data 251955200 293898239 41943040
    ext4 blocksize=4096 Large file Sparse superblock, 21 GB / 20 GiB
    recover_EXT2: s_block_group_nr=0/80, s_mnt_count=1317/4294967295, s_blocks_per_group=32768, s_inodes_per_group=8192
    recover_EXT2: s_blocksize=4096
    recover_EXT2: s_blocks_count 2621440
    recover_EXT2: part_size 20971520
    MS Data 293898240 314869759 20971520
    ext4 blocksize=4096 Large file Sparse superblock, 10 GB / 10 GiB
    recover_EXT2: s_block_group_nr=0/706, s_mnt_count=1317/4294967295, s_blocks_per_group=32768, s_inodes_per_group=8192
    recover_EXT2: s_blocksize=4096
    recover_EXT2: s_blocks_count 23156049
    recover_EXT2: part_size 185248392
    MS Data 314869760 500118151 185248392
    ext4 blocksize=4096 Large file Sparse superblock, 94 GB / 88 GiB
    Results
    P MS Data 2048 2099199 2097152 [NO NAME]
    FAT32, blocksize=4096, 1073 MB / 1024 MiB
    P MS Data 2361344 251955199 249593856
    NTFS, blocksize=4096, 127 GB / 119 GiB
    P MS Data 251955200 293898239 41943040
    ext4 blocksize=4096 Large file Sparse superblock, 21 GB / 20 GiB
    P MS Data 293898240 314869759 20971520
    ext4 blocksize=4096 Large file Sparse superblock, 10 GB / 10 GiB
    P MS Data 314869760 500118151 185248392
    ext4 blocksize=4096 Large file Sparse superblock, 94 GB / 88 GiB
    interface_write()
    1 P MS Data 2048 2099199 2097152 [NO NAME]
    2 P MS Data 2361344 251955199 249593856
    3 P MS Data 251955200 293898239 41943040
    4 P MS Data 293898240 314869759 20971520
    5 P MS Data 314869760 500118151 185248392
    simulate write!
    TestDisk exited normally.
    ext4 blocksize=4096 Large file Sparse superblock, 94 GB / 88 GiB
    Now the question is: Can I - using testdisk or any other tool - recover those partitions successfully so I will be able to boot again afterwards? I tested and I could mark them as:
    P Primary
    Any help will be greately appreciated.
    Best regards
    Last edited by blablubb1234 (2014-07-08 09:20:08)

    Issue resolved If you care to know how, read on:
    Looking at the disk using gdisk was doing no good. Neither of the recovery options in gdisk did the trick.
    I then returned to testdisk and restored the partitions (successfully). However, afterwards I was greeted by shell telling me the root device was not found (seems like UUIDs get changed when one restores them using testdisk). Adjusting the PARTUUID for root in <EFI SYSTEM PARTIITION>/boot/refind_linux.conf did the trick and I could boot up Archlinux again.
    Windows 7 still didn't boot telling me the required device was inaccessible (probably wrong UUID, too). I could however not restore/edit Windows' BCD using bcdedit, see my post Status: 0xc0000225 boot selection failed; required device inaccessible:
    To make a long story short: Removing bcd and running autorecovery from withing Windows RE successfully created a new bcd. Unfortunately, Windows writes its backup bootloader at <EFI SYSTEM PARTITION>/boot/EFI/Boot/bootx64.efi. This file originally was a copy of refind_x64.efi which I need to put at that location to be able to dualboot. After chrooting to my Arch system I could restore bootx64.efi, create a new fstab and everything is running fine now again.
    Best regards and thanks for the help.

  • Installing Multiple Operating Systems with grub and Arch Linux

    NOTE: Please keep in mind that there are many different ways to achieve this same result using various loop and ramdisk methods, read this with a separate window to jot down your comments and suggestions... this is ongoing for me so any help would be appreciated!
    Read the full article at Install Multiple Os without cds
    This is my first post and I plan on making this topic an official HOWTO with www.tldp.org.
    I have been into the computer security scene since 1990, but I realized that I had very little experience with the various LInux, Unix, and alternative Operating systems out there.
    I have a CD-RW drive but being a struggling computer security researcher I had no money for blank cd-recordables.  What follows is how I managed to install various operating systems on my computer (1 hard drive) without having to burn to a CD the ISO and then boot from that.
    I first partitioned my 120GB harddrive into 10 partitions, the 2nd partition is a small swap and the last partition is extra large because it holds all the ISO images..
    I then wrote a small shell script to automatically download (I love wget!)  the following.
    OpenBSD
    IpCOP
    Libranet
    Arch-Linux
    Fire
    Local Area Security
    Packet Master
    Devil-Linux
    FreeBSD
    Knoppix
    Helix
    Gentoo
    Yoper-Linux
    NetBSD
    RedHat
    Slackware
    The script also downloaded Installation manuals and md5 checksums.. (let me know if I should post... its pretty unsophisticated
    I installed Slackware (personal favorite) on hda1 using my last blank CD-R, note that I do not have a separate boot partitino.  (Should I?).  I also installed grub on the MBR.  I love grub, if you read through the man pages and all info you can find about grub, you can learn a whole lot.  Grub has much more features and capability than lilo, even though lilo comes installed by default with slack.
    I organize my kernel situation as follows...  In my /boot directory, I mkdir KERNEL, CONFIG, MAP, INITRD and that is a good way for me to keep my kernels and everything organized..  Another good way is a separate dir for each new kernel. 
    Since Arch-Linux is a solid distro, I'll use that as a first example.
    Here is the Arch-Linux section of my shell script
    goge Arch-Linux
    $w http://puzzle.dl.sourceforge.net/sourceforge/archlinux/arch-0.6.iso
    $w http://unc.dl.sourceforge.net/sourceforge/archlinux/arch-0.6.md5sum
    $w http://www.archlinux.org/docs/en/guide/install/arch-install-guide.html
    md55
    cat arch-0.6.md5sum
    md5sum arch-0.6.iso
    md55
    The first thing to do is to mount the downloaded ISO image so we can use it as if it were an actual CD.
    mount -t iso9660 -o ro,loop=/dev/loop0 cdimage /mnt/cdrom
    Where cdimage= the ISO image.   EX. /usr/local/src/ISO/Linux/Arch-Linux/arch-0.6.iso
    This mounts the iso as /mnt/cdrom.
    Next you need to copy /mnt/cdrom to a separate partition for the booting process.  So mkfs.ext2 /dev/hda9.  ( I prefer reiserfs or even XFS to ext but if you use something other than ext2 you could run into some problems because some of the installation kernels and initrds don't include support for reiserfs and so can't recognize the files.  Although you could use mkinitrd to create a new initrd with reiserfs support, that might be pushin it IMO...   I use the 9th partition consistently for this.  I know there is a "right" way to copy the /mnt/cdrom files so everything stays the way it is supposed too, using tar or cpio, but I'm lazy so I just do cp -rp.   
    (What is the tar or cpio commands to copy with correct permissions etc??)
    So you mount the 9th partition as whatever, say /mnt/hd and then copy the files.  Now what?
    Now edit your /boot/grub/menu.lst file to include the specific options to boot arch-linux installation. 
    A good idea is to find the isolinux.cfg file somewhere on the distro cd, this will tell you what to include in the menu.lst.
    Here is the section in my menu.lst
    title Arch Install
    root (hd0,8)
    kernel /isolinux/vmlinuz load_ramdisk=1 prompt_ramdisk=0 root=/dev/rd/0
    initrd=/isolinux/initrd.img
    This should be self-explanatory.  The root (hd0,8) is pointing to partition 9.  So the rest of the commands start from partition 9. 
    When you experience problems, remember you can always edit the grub boot options by typing 'e' and then edit the section.  Also, a good idea is to include several variations in your menu.lst so you can easily try other ways to boot efficiently.  And, remember to read up on all the installation guides that come with your distro, specifically, hard-disk installs. 
    There are special cases, Gentoo, has a semi-new compressed filesystem called squashfs.  BTW, this is AWESOME, so check it out.  It has to be compiled into the kernel, so some work is in order, but use this recompile to optimize your kernel.  You can get the squashfs patch for almost any kernel.  I use the latest stable 2.6 kernel.  Squashfs is incredible and although I don't think you need it to install from ISO, you do need it to expand the livecd.squashfs filesystem that comes with the cd.
    Heres a sample Gentoo section from my menu.lst
    title Gentoo Install
    root (hd0,8)
    kernel /isolinux/gentoo root=/dev/ram0
    initrd=/isolinux/gentoo.igz init=/linuxrc acpi=off looptype=squashfs loop=/livecd.squashfs cdroot vga=791 splash=silent
    A nother' tip is the shell that is provided if you experience problems, typically busybox or ash.  The key tools to get you going from here is mount and chroot.  Sometimes you will need to manually create a simulated file system and then chroot into it.  For instance, you might have to create boot, etc, bin, directories on the target partition. 
    I generally install each OS onto the next partition (careful of the logical partition) and add it to my menu.lst after install.  A good idea is after installation, copy the kernel and initrd(if there is one) to the slackware(or whatever) boot partition on hda1.  I copy kernels to /boot/KERNEL/ and initrd's to /boot/INITRD, then menu.lst is more organized...
    You then need to add an updated section to your menu.lst (just comment out the install section for later)
    Here is the finished arch-linux section from menu.lst
    title Arch Linux 6
    root (hd0,2)
    kernel /boot/vmlinuz26 ro root=/dev/hdc3
    This doesn't use my convenient boot/KERNEL/vmlinuz26 as you can tell by setting the root to partition 3.
    ***NOTE: Make a backup of MBR using dd and save to floppy, also backup the partition table to floppy, using cfdisk or parted.  And boot disks (I use 1 with grub, and 1 with slack, and tomsbootdisk) will invariably come in handy.  Tomsbootdisk is recommended, and make the grub boot disk when you install grub.  install to floppy.
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    The final result after some fun experimenting, is when I boot, I have a cool grub boot screen come up with the option to boot into whatever OS I want, this is handy for multiple reasons.  One good thing to do after this is to port scan and vuln scan each OS, after you update of course.  Write this stuff down and you will know the weaknesses/strengths of the various OS's. 
    I can boot a custom Firewall, snort, or multiple honeypots using this procedure, as well as a graphical kde environment with a kernel optimized for graphics and my processor/architecture, or an environment devoted to forensics or even an environment suitable for programming.
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    P.S. Some of the cooler alternative operating systems are BeOS 5, EOS, ER_OS, V2_OS, and my personal favorite Menuet.  Menuet is 100% assembly graphical operating system that fits on a floppy.  Its f'in money!
    This should be a good enough example to get you started, this kind of thing should be learned and not just copied... Knowing how to do this stuff could prove to be exceptionally useful...

    Start by reading all the articles built-in on your Mac - Help > Mac Help, search "printer sharing."
    http://desk.stinkpot.org:8080/tricks/index.php/2008/04/how-to-print-to-a-cups-se rver-from-mac-os-x/
    http://www.macosxhints.com/article.php?story=20080324224027152&query=share%2Bpri nter
    http://members.cox.net/18james/osxprintersharing.html
    http://ubuntuforums.org/archive/index.php/t-56940.html

Maybe you are looking for

  • HT1212 i have problem with my i pad

    i send my respect and best wishes, i had  problem with my i pad , before one week i put new passcod and my brother tries many times to put wrong passcode , after that i find my i pad appear i pad is disabled connect to the i tunes. i tred to fixt it

  • WBS Elements upload with settlement rule& classification

    I have created project profile & WBS elements with a BAPI bapi_project_maintain. Now i need to apply characterstic values and settlement rules to those WBS elements. I have been searching for a FM since long time. I tried with LSMW also,it did not wo

  • Adding Google results to your Search Results possible ?

    Hi I would like to know if and how i can add Google Results to the normal results? I found a post that mentioned that SAP delivers a Google Connector/ Repository Manager (RM) but i could not find this RM. Or do I have to develop my own Google Reposit

  • Cannot turn-off Auto Correction and leave Check Spelling On

    For some reason, when you turn off Auto correction- (keyboard settings) it also turns off check spelling. Hope thesre is a fix for this.

  • I CAN'T OPEN PDF FILE hELP

    I can't open a PDF File. Help