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.
-
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 -
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 -
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 - ext4As 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) -
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