Arch Linux Gaming Setup - Advice?

Okay so with the arrival of BL2 on Linux I want to setup Arch for gaming, but I need some advice towards this.
How would you personally set it up? UEFI or BIOS, EXT4 or BTRFS. FOSS or Catalyst?
What desktops would you also have? I am tempted via KDE5, I think it looks rather sweet, or maybe budgie.
also should I use 3.17 or 3.16?
Any other suggestions for this, I am not very good at setting up arch for gaming..
Many thanks!

Any of those options are fine and won't make a noticeable difference.
The biggest choice is whether to use the open source "radeon" driver or Catalyst, but that's simple to decide: Start with the open source "radeon" driver (it's dead simple to setup). If it doesn't meet the needs of the video games you want to play, then try Catalyst.

Similar Messages

  • Arch Linux gaming setup, any ideas tricks and tips?

    Okay so I want to improve my current setup So what should I change? I use ext4 system open source drivers and lxqt for desktop I have no apps installed really apart from steam and chromium but I'd like more performance out of my a4 5000 apu
    So any ideas/tricks/tips etc you know that helps play stuff like hl2 tf2 and some indie titles, and maybe witcher 2 haha no not a chance on this processor lol
    Anyways thanks!

    You might want to take a look at linux-ck, brebs has some useful suggestions in one of his signature links and I bet you can find more in the forums. Try to optimize every component, one by one (gather information, test, upgrade firmware/drivers if useful, repeat), and concentrate on your systems bottleneck[s_]. Other than that, using ABS and AUR provide a possibility to compile packages for your specific hardware setup. Use with caution, could be detrimental. Should you also use wine for gaming, try wine-d3dstream[-git] package from AUR, remember to enable its benefits in registry.

  • 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)

  • How to setup grub2 with arch linux and xen, lvm on luks

    OK, so I tried downloading this package from AUR:  https://aur.archlinux.org/packages/xen-git/ , but that has patching problems as noted in the comments.  It looks like the packagebuild sets up all the xen stuff for you, but I can't seem to get the package to install because of the error's while patching.  If anyone can point me in the right direction on what all the extra files in the PKGBUILD are for or how to debug problems with PKGBUILDs not working because of patches.
    So next I just tried to compile the latest xen from git://xenbits.xen.org/xen.git (with ./configure, make, make install) and that seemed to go fine, but I'm a bit confused:
    1.  Do I have to do any additional configuration for xen when working with arch linux?  On ubuntu I could just compile the source, update grub, and make sure to start the x services at runtime.
    2.  How do I set up grub to load xen with this setup?  Right now this is my /boot/grub/grub.cfg:
    GRUB_DEFAULT=0
    GRUB_TIMEOUT=5
    GRUB_DISTRIBUTOR="Arch"
    GRUB_CMDLINE_LINUX_DEFAULT="quiet"
    GRUB_CMDLINE_LINUX="cryptdevice=/dev/sda3:vgStorage"
    # Preload both GPT and MBR modules so that they are not missed
    GRUB_PRELOAD_MODULES="part_gpt part_msdos"
    # Uncomment to enable Hidden Menu, and optionally hide the timeout count
    #GRUB_HIDDEN_TIMEOUT=5
    #GRUB_HIDDEN_TIMEOUT_QUIET=true
    # Uncomment to use basic console
    GRUB_TERMINAL_INPUT=console
    # Uncomment to disable graphical terminal
    #GRUB_TERMINAL_OUTPUT=console
    # The resolution used on graphical terminal
    # note that you can use only modes which your graphic card supports via VBE
    # you can see them in real GRUB with the command `vbeinfo'
    GRUB_GFXMODE=auto
    # Uncomment to allow the kernel use the same resolution used by grub
    GRUB_GFXPAYLOAD_LINUX=keep
    # Uncomment if you want GRUB to pass to the Linux kernel the old parameter
    # format "root=/dev/xxx" instead of "root=/dev/disk/by-uuid/xxx"
    #GRUB_DISABLE_LINUX_UUID=true
    # Uncomment to disable generation of recovery mode menu entries
    GRUB_DISABLE_RECOVERY=true
    # Uncomment and set to the desired menu colors. Used by normal and wallpaper
    # modes only. Entries specified as foreground/background.
    #GRUB_COLOR_NORMAL="light-blue/black"
    #GRUB_COLOR_HIGHLIGHT="light-cyan/blue"
    # Uncomment one of them for the gfx desired, a image background or a gfxtheme
    #GRUB_BACKGROUND="/path/to/wallpaper"
    #GRUB_THEME="/path/to/gfxtheme"
    # Uncomment to get a beep at GRUB start
    #GRUB_INIT_TUNE="480 440 1"
    #GRUB_SAVEDEFAULT="true"
    ~
    I've tried throwing in a line like: XEN_HYPERVISOR_CMDLINE="cryptdevice=/dev/sda3:vgStorage", but nothing new shows up on the grub boot menu.
    First time trying to set up a non-ubuntu system, please help!

    As for XEN.... well you could always try QEMU/KVM or LXC.
    As for the LVM2-on-LUKS/dm-crypt
    My /etc/mkinitcpio.conf looks like this...
    MODULES="aesni_intel ata_generic ata_piix nls_cp437 ext4 intel_agp i915 dm-snapshot"
    BINARIES=""
    FILES=""
    HOOKS="base udev autodetect block keymap encrypt lvm2 filesystems keyboard fsck shutdown"
    /etc/defaults/grub
    GRUB_CMDLINE_LINUX="cryptdevice=/dev/sda2:root:allow-discards"
    GRUB_PRELOAD_MODULES="part_gpt part_msdos"
    GRUB_TERMINAL_INPUT=console
    GRUB_GFXMODE=auto
    GRUB_GFXPAYLOAD_LINUX=keep
    GRUB_DISABLE_RECOVERY=true
    The running grub config looks like this
    /boot/grub/grub.cfg
    9 insmod part_gpt
    10 insmod part_msdos
    53 if loadfont unicode ; then
    54 set gfxmode=auto
    55 load_video
    56 insmod gfxterm
    57 set locale_dir=$prefix/locale
    58 set lang=en_US
    59 insmod gettext
    60 fi
    61 terminal_input console
    62 terminal_output gfxterm
    63 set timeout=3
    84 menuentry 'Backup, Arch Linux grsec kernel' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-grsec kernel-true-12341234-8080-8080-8080-332200882255' {
    85 load_video
    86 set gfxpayload=keep
    87 insmod gzio
    88 insmod part_msdos
    89 insmod ext2
    90 set root='hd1,msdos2'
    91 if [ x$feature_platform_search_hint = xy ]; then
    92 search --no-floppy --fs-uuid --set=root --hint-bios=hd1,msdos2 --hint-efi=hd1,msdos2 --hint-baremetal=ahci1,msdos2 BBAAEEAA-FFCC-CCFF-FFCC-AABBCCEEBBAA
    93 else
    94 search --no-floppy --fs-uuid --set=root BBAAEEAA-FFCC-CCFF-FFCC-AABBCCEEBBAA
    95 fi
    96 echo 'Loading Linux grsec kernel ...'
    97 linux /vmlinuz-linux-grsec root=/dev/mapper/VolGroup00-lvroot rw cryptdevice=/dev/sda2:root:allow-discards quiet
    98 echo 'Loading initial ramdisk ...'
    99 initrd /initramfs-linux-grsec.img
    100 }
    Things to note:
    Numerical UUID is the UUID of the ROOT partition.
    Alphabetical UUIS is the BOOT partition
    hd1,msdos2 AND ahci1,msdos2 are how the Grub Bootloader numbers the drives not Linux.
    I have my BOOT partition on a USB stick, and it is the Second partition.
    So, that would make it, Device 2 and Partition 2
    Device numbering starts at 0
    Partition numbering starts at 1
    Oh, and note that you don't need ":allow-discards" ... at all but certainly if you don't have an SSD. Also note that I included the line numbers so it is very clear that I didn't post the whole thing, but instead what I thought was relevant. Finally, I am loading modules that I don't even need, but what the hell... if it ain't broke, don't fix it
    Last edited by hunterthomson (2013-12-04 08:31:45)

  • 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

  • Network setup advice

    Hi there,
    My home network will consist of a Belkin wireless router, an Athlon XP Desktop, and two Laptops (Wireless Access).
    My Athlon XP is going to be an always on machine, that i wanted to setup with arch as an firewall/gateway, i may consider setup an openvpn to secure my wireless network and i also need this machine as a "support" workstation (this means i'll have to install X, i use it mainly for some quick browsing or office task whenever i don't want to turn on the laptop... yeah call me lazy!!), my printer will also be atached to this computer so i can say it will also be a print server .
    I have a cable modem connection, so i was thinking of the following setup: The Cable modem connects to the Athlon XP trough eth0, providing internet connection (gateway) trough eth1. The Belkin router will connect to the eth1 adapter. (i consider disabling the built in router function in it using it as an access point only.
    At this point you might be asking why i could ever wanted to connect things this way... why not connecting the Cable modem to the Belkin router and then to the desktop... , well the reason is simple, i use torrents a lot and my router seems to crash quite too often when handling torrents (maybe under excessive traffic or too many connections).
    After this long and boring text , i would like to hear from you about possible security issues, advices, and other setup alternatives.
    Final Note: I'm new to Arch, used to be a gentoo user and i'm quite happy for how things are handled here, although i think some improvements must be done in the wiki and documentation, i'll look forward to help contribute in some way. Keep up the good work and many thanks in advance.

    Hi mate,
    my network is similar to what you want to build. My Arch server/firewall is facing the internet with one ADSL connection, behind it is a Switch, not Wireless:D:D:D, cause i don't like wireless network. I also have an OpenVPN server i can connect my laptop when i am away. I also have sshd as a backdoor. You can setup OpenVPN by follow my post here:
    http://bbs.unin83.com/viewtopic.php?t=157
    My advise for you is make your Arch up and running, and then setup iptables to do NAT, and open some ports for OpenVPN and others. You can write your own iptables script and can find it with google. I believe that there are many scripts like this available.
    Remember to enable ip forwarding at the Arch Linux.
    If you setup SSH, the better idea is to open a different port rather than port 22 because when i use port 22, a lot of newbies and bots try to brute force the password-->big log files.
    :D:D
    You can also disable your Root account and use sudo instead for security.
    After you have your server up and running, using nmap, hping, nessus, and other tools to check your server.
    Hope this can help you.
    Cheers.

  • 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

  • [SOLVED]Arch Linux / UEFI / BTRFS using Grub2 & Windows 8 in a 2nd HDD

    PROBLEM:
    ====================================================================================
    Dear fellas
    I just purchased an new HP TouchSmart 17.3" laptop that comes with Windows 8.1 pro (1 tb HDD + small SSD for cache only ) and still have space for one more HDD or SSD.
    I Google a lot and read a lot but many questions emerged since seems that no one has the same scenario (maybe I pick the wrong choices) like me.
    The problem is.. I didn't wish to re-install Windows 8.1 since it came with from factory.. so I purchased a 750 gb hdd and put it into the free slot to install Arch Linux in a different HDD.
    As I am not familiar with UEFI what I did was to reorder the hdds. I just put the Windows HDD as second disk and the new disk (For Arch Linux) as primary and changed into Bios from UEFI to compatibility mode and installed Arch Linux into the primary one.
    I reaaaally need help to add to grub the correct "path" to Windows 8.1 disk that came with UEFI..
    Anyone could please help me?
    Thanks in advance!
    ====================================================================================
    SOLUTION:
    A huge thanks to @TheSaint and other users for their help and assistance!
    More sources:
    http://www.kossboss.com/linux---arch-in … -grub-boot
    https://www.youtube.com/watch?v=METZCp_JCec#t=146
    https://bbs.archlinux.org/viewtopic.php … 1#p1390741
    Step by Step Summary:
    Use gdisk to create partitions on /dev/sda:
        - 512MB - EF02 type partition (for EFI boot)
        - 690GB - Linux partition for the BTRFS.
    - Create an EF00 (ESP) with 512mb
    - Create a Linux System partition with the rest of space
    Make the FAT 32 system for EFI boot:
    # mkfs.vfat -F32 /dev/sda1
    Make the BTRFS partition. If it complains about existing filesystems just add a "-f":
    # mkfs.btrfs -L arch -f /dev/sda2
    We will make out a root subvolume for sda1, this will be a folder called root located at the root of sda2. The way we will design this is that When the system boots we will not see /root, we will be inside root. Inside root you will have all of your etc,sys,proc,whatever folders etc.
    # mount /dev/sda2 /mnt
    # cd /mnt
    # btrfs subvolume create /mnt/root
    This should show you your root
    # btrfs subvolume list -a /mnt
    Something like this: ID 256 gen 5 top level 5 path root
    # cd /
    # umount /dev/sda2
    Now we will mount sda2 root subvolume as /mnt and we will dump the arch system into there with pacman. We will also enable compress to utilize btrfs compress feature.
    # mount -o defaults,compress=lzo,subvol=root /dev/sda2 /mnt
    NOTE: the command "mount" will not show which subvolume is mounted, to see how subvolumes are mounted you need to look inside proc (cat /proc/self/mountinfo):
    # cat /proc/self/mountinfo | egrep sda2
    The line for the mount of sda2 looks like this:
    43 21 0:34 /root /mnt rw,relatime shared:30 - btrfs /dev/sda2 rw,compress=zlib,ssd,space_cache
    We can see that the subvolume /root is mounted to /mnt from the device /dev/sda3
    Notice how with regular mount command its missing:
    # mount | egrep sda2
    /dev/sda3 on /mnt type btrfs (rw,relatime,compress=zlib,ssd,space_cache)
    Pacman will dump stuff into a boot folder, so we better mount our sda1 EFI boot partition to it. Or else all of the boot stuff will go to sda3 instead of sda1:
    # cd /
    # pacstrap -i /mnt base base-devel
    Let us create the directory and mount the EFI partition
    # cd /mnt
    # mkdir -p /mnt/boot/efi
    # mount /dev/sda1 /mnt/boot/efi
    Let us generate the FSTAB:
    # genfstab -p /mnt >> /mnt/etc/fstab
    Let us chroot into the arch installation:
    # arch-chroot /mnt /bin/bash
    Change password:
    # passwd
    Then pick the right one like this and associate it with a link to /etc/localtime
    # ln -s /usr/share/zoneinfo/US/Pacific /etc/localtime
    Let us generate the initial RAM disk
    # mkinitcpio -p linux
    Let us setup the bootloader (GRUB)
    # pacman -Syu grub efibootmgr
    Let us generate the grub configuration
    # grub-mkconfig -o /boot/grub/grub.cfg
    Let us install grub into the HDD
    # grub-install /dev/sda
    # umount -R /mnt
    # umount /mnt
    # reboot
    From this step you can go straight and forward with the https://wiki.archlinux.org/index.php/Beginners%27_guide
    Last edited by erickwill (2014-11-21 20:41:06)

    TheSaint wrote:As UEFI BIOS is a boot loader itself. You should make on each HDD an ESP.
    When you want to start win8 you go to BIOS and chose its entry, so will do for Arch the same.
    For this way I suggest you write to boot the kernel directly from the BIOS. It just take some reading on this topic
    Other option you set on you second ESP the boot loader of your liking and it will try to find win8 partition.
    Thanks for your reply.
    For the second option, may I use the compatibility mode and install the booloader into the first partition along with Arch?
    Or in case the first option is still the better option, could you pleaaaase give me some directions from the scratch? Do you have Google Hangout?
    Thanks in advance.
    Last edited by erickwill (2014-11-18 19:54:26)

  • [SOLVED]Multiple Problems after a new install on Arch Linux

    Hello all,
    I just finished installing Arch Linux from the core ISO which I downloaded from the site. The install went smoothly and booted up fine. Also I was able to install gnome and its extras fine as well. On the first boot after installing gnome I managed to get my resolution correct also. However later on after I installed compiz fusion everything with the resolution seems to be going wrong . My computer specs are shown below :
    AMD 64 3200
    Asus M2N MX-SE
    2 GB Ram
    Geforce 8600 GT
    Viewsonic VA1918wm (Native resolution is 1440x900)
    At the moment I can only manage to get upto 1024x768 and it looks quite bad at that resolution. I have attached the xorg.conf I have at the moment.
    Section "ServerLayout"
    Identifier "X.org Configured"
    Screen 0 "Screen0" 0 0
    InputDevice "Mouse0" "CorePointer"
    InputDevice "Keyboard0" "CoreKeyboard"
    EndSection
    Section "Files"
    ModulePath "/usr/lib/xorg/modules"
    FontPath "/usr/share/fonts/misc"
    FontPath "/usr/share/fonts/100dpi:unscaled"
    FontPath "/usr/share/fonts/75dpi:unscaled"
    FontPath "/usr/share/fonts/TTF"
    FontPath "/usr/share/fonts/Type1"
    EndSection
    Section "Module"
    Load "dbe"
    Load "record"
    Load "extmod"
    Load "glx"
    Load "dri2"
    Load "dri"
    EndSection
    Section "InputDevice"
    Identifier "Keyboard0"
    Driver "kbd"
    EndSection
    Section "InputDevice"
    Identifier "Mouse0"
    Driver "mouse"
    Option "Protocol" "auto"
    Option "Device" "/dev/input/mice"
    Option "ZAxisMapping" "4 5 6 7"
    EndSection
    Section "Monitor"
    Identifier "Monitor0"
    VendorName "Monitor Vendor"
    ModelName "Monitor Model"
    EndSection
    Section "Device"
    Identifier "Card0"
    Driver "nvidia"
    VendorName "nVidia Corporation"
    BoardName "G84 [GeForce 8600 GT]"
    BusID "PCI:2:0:0"
    EndSection
    Section "Screen"
    Identifier "Screen0"
    Device "Card0"
    Monitor "Monitor0"
    SubSection "Display"
    Viewport 0 0
    Depth 1
    EndSubSection
    SubSection "Display"
    Viewport 0 0
    Depth 4
    EndSubSection
    SubSection "Display"
    Viewport 0 0
    Depth 8
    EndSubSection
    SubSection "Display"
    Viewport 0 0
    Depth 15
    EndSubSection
    SubSection "Display"
    Viewport 0 0
    Depth 16
    EndSubSection
    SubSection "Display"
    Viewport 0 0
    Depth 24
    EndSubSection
    EndSection
    While I was trying to fix this I noticed I was encountering other problems also. For one I found that sometimes dhcpcd times out on booting up and I cant seemt o connect to the Internet on booting. Although I just thought of trying a static IP and I'll post if that helped later on.
    Another problem is I found that I seem to get the following error randomly. Pressing ctrl + D after this just restarts the machine.
    The superblock could not be read or does not describe a correct ext2
    filesystem. If the device is valid and it really contains an ext2
    filesystem (and not swap or ufs or something else), then the superblock
    is corrupt, and you might try running e2fsck with an alternate superblock:
    e2fsck -b 8193 <device>
    Finally, while I boot up I noticed that it says "Mounting root partition as read only   [DONE]"  Is the root partition supposed ot be mounted as read only ? Attached my fstab just in case it is needed.
    # /etc/fstab: static file system information
    # <file system> <dir> <type> <options> <dump> <pass>
    none /dev/pts devpts defaults 0 0
    none /dev/shm tmpfs defaults 0 0
    #/dev/cdrom /media/cd auto ro,user,noauto,unhide 0 0
    #/dev/dvd /media/dvd auto ro,user,noauto,unhide 0 0
    #/dev/fd0 /media/fl auto user,noauto 0 0
    /dev/sda3 /boot ext3 defaults 0 1
    /dev/sdb1 / ext3 defaults 0 1
    /dev/sdb2 swap swap defaults 0 0
    /dev/sdb3 /home ext3 defaults 0 1
    As you can see I'm quite new to Arch Linux so any help would be deeply appreciated.
    Last edited by FilledVoid (2009-09-11 16:28:28)

    Thank you for all your suggestions . I tried replacing the ID to Card0 but it didnt seem to fix it . However on the bright side I checked more threads on the forum and found some that helped out . :)
    http://bbs.archlinux.org/viewtopic.php?id=75070&p=2
    http://bbs.archlinux.org/viewtopic.php?id=72788
    http://bbs.archlinux.org/viewtopic.php?id=76938
    I copied the xorg.conf file from the third link and just made minor changes to it like removing all the resolutions I didn't need and now its working fine :).
    Now Im just stuck with two problems. One is the following message which appears randomly.
    The superblock could not be read or does not describe a correct ext2
    filesystem. If the device is valid and it really contains an ext2
    filesystem (and not swap or ufs or something else), then the superblock
    is corrupt, and you might try running e2fsck with an alternate superblock:
    e2fsck -b 8193 <device>
    ******************* FILESYSTEM CHECK FAILED *************
    * Please repair manually and reboot. Note that the root *
    * filesystem is currently mounted read-only. To remount *
    * it read-write type: mount -n -o remount,rw / *
    * When you exit the mantenance shel the system will *
    * reboot automatically. *
    A thread about the same can be found http://bbs.archlinux.org/viewtopic.php?pid=295384 but there isn't a solution on it. 
    The second is the intermittent problems with the Network being setup. Sometimes when I boot up it just says dhcpcd timedout and I won't be able to connect . However I can connect on another machine at the same time.
    Took a look at the drive in question with gparted and it shows the below information:
    /dev/sdb1 ext3   /   32.59 GB    4.92 GB   27.68 GB  boot
    By any chance is any of the above information relevant :x ?

  • Share files between Arch Linux and XP Home

    Hi, I have an Arch Linux desktop and a XP Home Laptop both connected to a Billion 7401 ADSL Router to get to the internet. If I am using any computer sometimes I have a need to use files from the other one, and from an external HDD connected to the XP laptop. I have been googling for the last 3 weeks but could not find a concrete solution to this issue, maybe because I don't understand much about networking or p2p, and samba. Looks like I have to spend more money on either another computer to be setup as a server or on a router or hub or switch? But I thought my Billion Router is already a router? I wonder if you can please help me to solve this problem or point me to a good link? Thanks a lot.

    SSHFS is another more Linux native option for sharing files (and it can be compatible with XP too using special programs).
    http://en.wikipedia.org/wiki/SSHFS
    http://wiki.archlinux.org/index.php/Sshfs
    As I understand it XP Home uses simple file sharing which can be really insecure depending on your needs.  Once when I ran a computer with Linux and was needing to set up a samba share I discovered massive issues since (at the time) I was connecting regularly over a shared wireless network among untrusted persons.  I ended up looking into using SSH tunneling to overcome the issues associated with XP Home's Simple File sharing and that is when I came across SSHFS.
    Whatever you do make sure to read this about XP Home's "Simple Filesharing"
    http://www.centerlineit.com/index.php?v … q&Itemid=9
    It's important you understand it.
    Last edited by davidm (2010-04-12 04:01:34)

  • 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 on reddit

    Hey, I don't know if this has been posted before but there is a great sub-reddit at www.reddit.com for Arch Linux users that has some helpful advice/news/etc. 
    http://www.reddit.com/r/ArchLinux
    I think new user's could find a lot of the info there useful.  Enjoy!

    karol wrote:Yup, we know it's there :-)
    https://wiki.archlinux.org/index.php/Ge … y_projects
    Ha, ha, I'm the newbie around here.   Thanks for the link!

  • Arch Linux on Intel Macs?

    Are there any plans to make Arch Linux run on the new Intel based Macs?

    BTW, talking to an Apple salesman over the weekend. Apparently the new iMacs will run Windows Vista too! Unlike previous Macs, they are not using a proprietary Apple BIOS setup, but something more general purpose that is compatible with Vista too. Apple doesn't want you running MacOS on your PC, but they don't seem to mind you running Windows on your Mac. Lets them get into the booming PC hardware business! The salesman assured me that most Linux distros would be able to run on the machines.
    I played around with them, and despite having on 2 GHz chips (but two of them, of course) the iMacs were very responsive. I can only guess that MacOS is lighter than Windows, and hence faster subjectively on these "slower" processors.

  • [VIDEO TUTORIAL] Installing Arch Linux on GPT/LVM/GRUB2

    Hello everyone,
    I've recently switched over from running my machine on LVM with a MSDOS partition style, and I was tired of the limitations of it. Such as 4 primary partions or 3 primary and 1 extended. It was also hindering my flexibility since I had to make 1 primary partition that was /boot, which forced me to make an initram image if I wanted to put my / inside of the LVM. The only way I could truly fix all my problems was to move away from GRUB-Legacy (Which I love since it's so easy to configure) over to GRUB 2(Which is not as bad as I thought it was).
    I made this video to help people trying to do this combination. I also included the links to further information in the videos' description. It contains a link to GRUB 2 Architecture and moving over to GRUB (on IBM's site), and also ArchWiki resources for further reading.
    I hope you enjoy it.
    http://www.youtube.com/watch?v=69X9ZYA41xU
    After you finish doing this, you will end up with this style:
    GPT Partition Layout w/ Protective MBR.
    /dev/sda1 - BIOS Boot Partition
    /dev/sda2 - Linux LVM (arch is name of LVM)
    --> /dev/arch/boot - ext2
    --> /dev/arch/swap - swap
    --> /dev/arch/root - ext4
    --> /dev/arch/home - ext4

    As a complete newbie to partitioning on Linux I'd like to say how grateful I am to for making this.
    You've kept it clear, clean and simple which I appreciate.
    As most of my ventures into installing Linux is usually accompanied with a graphical installer a great deal of this is fairly alien. It could be nice to have a wiki entry just laying out a few examples for partitioning and setting up arch in various simple and exotic ways.
    Again, thank you for this contribution. (While I quickly transcribe the steps in your video and ready the 'man' command)
    Edit:
    Basic step by step transcription
    [root@archiso ~]# modprobe dm-mod
    [root@archiso ~]# dhcpcd
    [root@archiso ~]# pacman -Syy gptfdisk
    [root@archiso ~]# gdisk /dev/sda
    GPT fdisk (gdisk) version 0.8.1
    Partition table scan:
    MBR: not present
    BSD: not present
    APM: not present
    GPT: not present
    Creating new GPT entries.
    Command (? for help): [n]
    Partition number (1-128, default 1): [RETURN]
    First sector (34-[max], default = 34) or {+-}size{KMGTP}: [RETURN]
    Information: Moved requested sectory from 34 to 2048 in
    order to align on 2048-sector boundries.
    Use 'l' on the experts' menu to adjust alignment
    Last sector (2048-[max], default = [max]) or{+-}size{KMGTP}: [+32MB]
    Current type is 'Linux filesystem'
    Hex code or GUID (L to show codes, Enter = 8300): [EF02]
    Changed type of partition to 'BIOS boot partition'
    Command (? for help): [n]
    Partition number (2-128, default 2): [RETURN]
    First sector (34-[max], default = 67584) or {+-}size{KMGTP}: [RETURN]
    Last sector (2048-[max], default = [max]) or {+-}size{KMGTP}: [RETURN]
    Current type is 'Linux filesystem'
    Hex code or GUID (L to show codes, Enter = 8300): [8E00]
    Changed type of partition to 'Linux LVM'
    Command (? for help): [w]
    Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING PARTITIONS!!
    Do you want to proceed? (Y/N): [y]
    OK: writing new GUID partition table (GPT).
    The operaton has completed successfully.
    [root@archiso ~]# pvcreate /dev/sda2
    [root@archiso ~]# vgcreate arch /dev/sda2
    [root@archiso ~]# vgdisplay
    [root@archiso ~]# lvcreate -L 100M -n boot arch
    [root@archiso ~]# lvcreate -C y -L 1G -n swap arch
    [root@archiso ~]# lvcreate -L 10G -n root arch
    [root@archiso ~]# lvcreate -l 100%FREE -n home arch
    [root@archiso ~]# lvscan
    [root@archiso ~]# mkfs.ext2 /dev/arch/boot
    [root@archiso ~]# mkfs.ext4 /dev/arch/root
    [root@archiso ~]# mkfs.ext4 /dev/arch/home
    [root@archiso ~]# mkswap /dev/arch/swap
    [root@archiso ~]# /arch/setup
    Prepare Hard Drive
    3 Manually Configure block devices, filesystems andmountpoints
    Partition Access Method
    dev directly by /dev/* (most intuitive but devicefile names can change
    Manage Filesystems
    /dev/sda1 raw - 32MiB N
    /dev/mapper/arch-boot raw - 100MiB N > [IGNORE]
    /dev/mapper/arch-home raw - 91000MiB N > filesystem (re)created? [NO] > ext4 home
    /dev/mapper/arch-root raw - 10240MiB N > filesystem (re)created? [NO] > ext4 root
    /dev/mapper/arch-swap raw - 1024MiB N > filesystem (re)created? [NO] > swap
    Choose bootloader
    [SKIP]
    Configuration
    mkinitcpio > HOOKS="...lvm2..."
    DONE
    Exit
    [root@archiso ~]# mount -o bind /dev /mnt/dev
    [root@archiso ~]# mount -t proc /proc /mnt/proc
    [root@archiso ~]# mount -t sysfs /sys /mnt/sys
    [root@archiso ~]# chroot /mnt /bin/bash
    [root@archiso /]# dhcpcd
    [root@archiso /]# pacman-db-upgrade
    [root@archiso /]# pacman -Syy grub2-bios
    [root@archiso /]# grub_bios-install --boot-directory=/boot --no-floppy --recheck --debug /dev/sda
    [root@archiso /]# grub-mkconfig -o /boot/grub/grub.cfg
    [root@archiso /]# exit
    [root@archiso ~]# reboot
    login
    [root@host ~]# $EDITOR /etc/default/grub
    #GRUB_GFXMODE=auto
    #GRUB_GFXPAYLOAD_LINUX=keep
    #GRUB_COLOR_NORMAL="light-blue/black"
    #GRUB_COLOR_HIGHLIGHT="light-cyan/blue"
    [root@host ~]# chmod -x /etc/grub.d/10_linux
    [root@host ~]# $EDITOR /etc/grub.d/40_custom
    menuentry "Arch Linux" {
    insmod lvm
    set root=(arch-boot)
    linux /vmlinuz-linux root=/dev/arch/root ro
    initrd /initramfs-linux.img
    menuentry "Arch Linux Fallback" {
    insmod lvm
    set root=(arch-boot)
    linux /vmlinuz-linux root=/dev/arch/root ro
    initrd /initramfs-linux-fallback.img
    [root@host ~]# grub-mkconfig -o /boot/grub/grub.cfg
    [root@host ~]# reboot
    Last edited by Earnestly (2012-01-09 11:51:45)

  • (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.

Maybe you are looking for

  • Hiding all open windows.

    On my Mini (running Tiger), I'm sure that I used to be able to hide all open windows by pressing F11 to show the desktop. How do I do this on my iMac, running Leopard and using the aluminium keyboard? Pressing F11 just reduces the volume. Tried press

  • Selection screen in Logical Database programming

    In my Executable program,i have used 'GET PERNR' . but i don't need the standrd selection screen as such.I want to modify the std selection screen . Instead of allowing user to select the PERNR's , i want to set their PERNR's by default . Advance Tha

  • Out of Sync audio involving 12 - 16 bit  HELP!!!!

    Dear Apple Community, I recently video taped my brothers wedding on my Canon PAL MV700i mini DV. Little did I know I recorded in 12 bit audio, which ive learnt is bad(ive now changed over to 16 bit). When capturing onto Final Cut Express I did so in

  • My power button is stuck and doesn't turn the phone off or on anymore. Can anyone help?

    My power button is stuck and doesn't turn the phone off or on anymore. Can anyone help?

  • Crystal Reports for Enterprise and universe connections

    Hi, I have noticed an issue with Crystal Reports for Enterprise that may give many administrators a headache. If a BOBJ user has access to a sensitive universe (eg HR or Finance data) to run pre-built WebI reports from  (but not create new ones or ed