Arch-0.7.1.iso OR arch-0.7.1-base.iso???
whats the difference?
Insane-Boy wrote:Arch-base is only base pkgs.. you should download all other which you need.Archlinux-iso is base + a lot of other pkgs ( if I'm not in mistake it contains KDE .. ).This is the difference:)
Doesn't contain KDE.
Similar Messages
-
Arch-0.6-base.iso: request for 'pcmcia' package
Hello,
I use my pcmcia Wi-Fi card on my laptop to access my router-to-cable-modem internet. Would you please consider adding the 'pcmcia' package to the 0.6 release of the 'base.iso'.
Would these requests be better made as a bug-report in the tracker?
Thanx.OK, I've been mulling this over(can you hear the metal-on-metal scraping sound in my head?). If the base install is, as it has sometimes been refered too, for getting a 'base(ic)' install up-n-runing, then, how do most people get their various dial-up/pcmcia/PPPoE/etc.. systems installed? Is it simply inferred, that, people need to have these packages already available on another CD or local NFS/FTP share?
I was under the impression that the 'base.iso' is for a quick install, followed by completion over a broadband connection(?). What are the other ways people use it?
Thanx. -
Install Arch from 2007.05 "base" iso or the "current" iso?
My old Arch install (0.7.2, upgraded in Nov. 06) may be broken, and I'm thinking of doing a fresh install of 2007.05. For the old install, I'd followed the recommended procedure of installing just the base system from the CD iso image, then installed the xorg and kde metapackages via pacman and then built the system from there.
At present, Arch offers a 2007.05-Duke.current iso of 550 MB that includes Xorg plus other things (but not KDE), on top of the base package. What exactly is the virtue of this bigger iso over the base package iso (150 MB). Why are the devs offering this bigger "current" iso, and is this the preferred way of installing Arch now?You could also take it one step further, and use the ftp iso (a mere 27MB for i686, 35MB for x86_64) - that basically provides the installer only, and downloads everything else from the repos. Of course, as with slackhack's "base + upgrade" suggestion, a decent net connection is essential for an ftp install.
-
ESI U24XL operating well on my Arch Laptop but not on my Arch PC
I am struggling with my ESI U24XL usb audio device and just reached a dead-end.
These are the facts:
I tested 2 usb audio cards (ESI U24XL & ESI MAYA44) on my PC and on my laptop. PC and Laptop are both 64bit machines running an up-to-date Arch (kernel 3.7.7-1).
I typed this command to test the card:
aplay /usr/share/sounds/alsa/Front_Center.wav
and got following result:
Laptop
MAYA44: Works out of the box.
U24XL: Works almost out of the box. Playback too fast, can easily be fixed by creating ~/.asoundrc and resampling playback to 48000kHz.
PC
MAYA44: Works out of the box.
U24XL: Playback is awfully scratchy. Creating and fiddling around with ~./asoundrc dosn't have any impact.
But that's not all. Let's say I plug both audio cards and run xbmc. In xbmc, I choose MAYA44 as output device. If I run aplay on U24XL now (without ~/.asoundrc) then I suddenly get a clear output. As soon as I shutdown xbmc the output becomes scratchy again.
I compared the output of aplay -v with and without xbmc running. They are identical.
On my PC I switched to systemd while the Laptop still boots with initscripts. But I dont see a connection to this problem. Or maybe something with d-bus?
However, I am clueless about what the relevant system information might be. Please tell me if you want to see something. Any help appreciated.
Thanks!Does the player work with Windows Media Player 0 on the home PC? Try using another USB port.
Jason -
Will iSO 6 to download on to iPad iSO 5.0.1?
Will iSo 6 download on a iPad iSO 5.0.1?
Assuming it is an iPad2 or New IPad, yes it should. 6 is not available for the original iPad.
-
I need help making a new Arch install ISO
I have posted a couple of messages, but as yet no one seems to have responded, probably because they have not read them.
I need help building a new ISO for Arch, to take account of dmraid.
I can and have built ones that get so far, and clearly I am not that far away.
All I need help with now is getting at the contents of the initial ramdisk (/isolinux/initrd.img) so I can make a new one with modifications, and if anyone can help, I need a hand working out how to use the kernel26.img that I will end up with on a system.
Any help appreaciated.As far as I know this will be included in the next ISO release. I solved it by manually bringing the dmraid package to the install and wrote a guide on installing your root system on dmraid. However when the system crashes I have the slight inconvenience of having to install dmraid and manually mount the sets to do a recovery. I guess this is the part you want to get rid of aswell. I decided to wait until the next holy ISO.
-
When is the next Arch ISO due?
The 08-2009 ISO doesn't seem to like my laptops ethernet but Chakra does pick it up correctly (which I'm guessing uses a later build of Arch?)
Hi, download from here:
[arch-releng] automated iso builds
Dieter Plaetinck dieter at plaetinck.be
Tue Mar 2 17:50:21 EST 2010
new images @ http://build.archlinux.org/isos/
Using the latest stuff. (mkinitcpio 0.6.3-1 etc)
I found out a nasty issue that caused fs'es to be mounted in the wrong
order, thus breaking installations.
http://projects.archlinux.org/aif.git/c … perimental
if you want to test, be sure to install the latest aif from git
experimental branch. ( you can use the aur git package
http://aur.archlinux.org/packages.php?ID=22101)
in a while i will build a new aif package/new isos with new aif.
Dieter
http://mailman.archlinux.org/pipermail/ … 00888.html
http://mailman.archlinux.org/pipermail/ … 00889.html
If you want to build your own iso
pacman -S devtools
mkarchroot /tmp/pichicho base
mkarchroot -r bash /tmp/pichicho
pacman -S git squashfs-tools syslinux devtools cdrkit make
cd /tmp
git clone git://projects.archlinux.org/archiso.git
cd archiso/archiso
make install
cd ../configs/syslinux-iso/
make core-iso
mkarchroot is not needed at all but I recommend it to ensure a clean enviroment
thats all
Last edited by djgera (2010-03-04 03:03:34) -
Arch 0.7.1pre-1. iso problem
Attempting to load arch existing system with newly downloaded arch 0.7.1CD results in a normal install prompt.
The instruction provided in the new CD is:
===================================
arch root=/dev/hdxy
Entering that instruction allows the install to proceed listing :
===========================================
vmlinuz
then an initrd statement
These are followed by the arch install elements ending with the arch install prompt.
Thus, the system is not installed from the designated arch root=/devhdxy.
Is this caused by the lack of an initrd in the lilo.conf file?
The system in my computer is arch kernel 2.6.13.
It would seem that the CD is not backwards compatible with previous arch kernels and the use of CD 0.7 is required for non-initrd kernels.
Perhaps adding the initrd statement in lilo will provide for the new kernel as well as the old kernel(s)?Dusty:
I may not have made my point clear enough.
I have been able to install with the arch0.7.1-pre1 CD I burned.
I used lilo and inserted the initrd as required by the kernel being installed (not known what kernel was to be installed until I got to it in the install). Was not aware the kernel being loaded was 2.6.14-4 prior to /arch/setup.
The point I made regarding the CD is that it doesn't respond correctly to the command (at the boot prompt)...arch root=/dev/hdxy... which fails to load the system installed in /dev/hdxy. This occurs regardless of initrd kernel or non-initrd kernel in /dev/hdxy.
I hope this makes more sense to you. I was stating many things in the previous post because I had not tried the install, just tried the command ...arch root=/dev/hda3 to boot into my 2.6.13-x hdd...did not boot into it but did boot into arch install prompt instead.
Perhaps the description was confusing because I had not tried to install but just to boot into an existing system and that failed(and still does).
Would you try it and report ? -
Arch install from hard disk(without boot-cd)
I was refering to this page to install Arch from the 0.7 base.iso without writing the ISO file to a cd. I use grub-0.94 and placed the following lines in 'menu.1st':
title archcd
root (hd0,7)
kernel /isolinux/vmlinuz root=/dev/hda7 BOOTMEDIA=cd
initrd /isolinux/initrd.img
I formatted /dev/hda7 as a 250 MB partition with ext2, which grub correctly identified(I had some problems with this, but Pechorin helped me out), and then used the 'dd' command to copy the iso to this partition.
But on booting, grub identifies the partition correctly but does not seem to be able to find any files on the partition(I went into the command line since selecting from the menu did not work, but it still gives the same error)
Error 15: File/Directory not foundI've never tried this before, and I only briefly read that Arch wiki you mention. However, why can't you just use the "loop" device to mount the .iso file and run it from there?
mount -t iso9660 -o ro,loop /path/wombat(?).iso /mnt/cdrom
Then, install from `/mnt/cdrom` as if it were a CD. I don't understand the necessity for all that other stuff. I mount .iso files all the time using the loop device. It's only when I need to modify the .iso itself will I copy the .iso contents to a temp directory (or partition). I don't see why you would need to modify the .iso contents, since it's just emulating a CD anyway. -
Installing Multiple Operating Systems with grub and Arch Linux
NOTE: Please keep in mind that there are many different ways to achieve this same result using various loop and ramdisk methods, read this with a separate window to jot down your comments and suggestions... this is ongoing for me so any help would be appreciated!
Read the full article at Install Multiple Os without cds
This is my first post and I plan on making this topic an official HOWTO with www.tldp.org.
I have been into the computer security scene since 1990, but I realized that I had very little experience with the various LInux, Unix, and alternative Operating systems out there.
I have a CD-RW drive but being a struggling computer security researcher I had no money for blank cd-recordables. What follows is how I managed to install various operating systems on my computer (1 hard drive) without having to burn to a CD the ISO and then boot from that.
I first partitioned my 120GB harddrive into 10 partitions, the 2nd partition is a small swap and the last partition is extra large because it holds all the ISO images..
I then wrote a small shell script to automatically download (I love wget!) the following.
OpenBSD
IpCOP
Libranet
Arch-Linux
Fire
Local Area Security
Packet Master
Devil-Linux
FreeBSD
Knoppix
Helix
Gentoo
Yoper-Linux
NetBSD
RedHat
Slackware
The script also downloaded Installation manuals and md5 checksums.. (let me know if I should post... its pretty unsophisticated
I installed Slackware (personal favorite) on hda1 using my last blank CD-R, note that I do not have a separate boot partitino. (Should I?). I also installed grub on the MBR. I love grub, if you read through the man pages and all info you can find about grub, you can learn a whole lot. Grub has much more features and capability than lilo, even though lilo comes installed by default with slack.
I organize my kernel situation as follows... In my /boot directory, I mkdir KERNEL, CONFIG, MAP, INITRD and that is a good way for me to keep my kernels and everything organized.. Another good way is a separate dir for each new kernel.
Since Arch-Linux is a solid distro, I'll use that as a first example.
Here is the Arch-Linux section of my shell script
goge Arch-Linux
$w http://puzzle.dl.sourceforge.net/sourceforge/archlinux/arch-0.6.iso
$w http://unc.dl.sourceforge.net/sourceforge/archlinux/arch-0.6.md5sum
$w http://www.archlinux.org/docs/en/guide/install/arch-install-guide.html
md55
cat arch-0.6.md5sum
md5sum arch-0.6.iso
md55
The first thing to do is to mount the downloaded ISO image so we can use it as if it were an actual CD.
mount -t iso9660 -o ro,loop=/dev/loop0 cdimage /mnt/cdrom
Where cdimage= the ISO image. EX. /usr/local/src/ISO/Linux/Arch-Linux/arch-0.6.iso
This mounts the iso as /mnt/cdrom.
Next you need to copy /mnt/cdrom to a separate partition for the booting process. So mkfs.ext2 /dev/hda9. ( I prefer reiserfs or even XFS to ext but if you use something other than ext2 you could run into some problems because some of the installation kernels and initrds don't include support for reiserfs and so can't recognize the files. Although you could use mkinitrd to create a new initrd with reiserfs support, that might be pushin it IMO... I use the 9th partition consistently for this. I know there is a "right" way to copy the /mnt/cdrom files so everything stays the way it is supposed too, using tar or cpio, but I'm lazy so I just do cp -rp.
(What is the tar or cpio commands to copy with correct permissions etc??)
So you mount the 9th partition as whatever, say /mnt/hd and then copy the files. Now what?
Now edit your /boot/grub/menu.lst file to include the specific options to boot arch-linux installation.
A good idea is to find the isolinux.cfg file somewhere on the distro cd, this will tell you what to include in the menu.lst.
Here is the section in my menu.lst
title Arch Install
root (hd0,8)
kernel /isolinux/vmlinuz load_ramdisk=1 prompt_ramdisk=0 root=/dev/rd/0
initrd=/isolinux/initrd.img
This should be self-explanatory. The root (hd0,8) is pointing to partition 9. So the rest of the commands start from partition 9.
When you experience problems, remember you can always edit the grub boot options by typing 'e' and then edit the section. Also, a good idea is to include several variations in your menu.lst so you can easily try other ways to boot efficiently. And, remember to read up on all the installation guides that come with your distro, specifically, hard-disk installs.
There are special cases, Gentoo, has a semi-new compressed filesystem called squashfs. BTW, this is AWESOME, so check it out. It has to be compiled into the kernel, so some work is in order, but use this recompile to optimize your kernel. You can get the squashfs patch for almost any kernel. I use the latest stable 2.6 kernel. Squashfs is incredible and although I don't think you need it to install from ISO, you do need it to expand the livecd.squashfs filesystem that comes with the cd.
Heres a sample Gentoo section from my menu.lst
title Gentoo Install
root (hd0,8)
kernel /isolinux/gentoo root=/dev/ram0
initrd=/isolinux/gentoo.igz init=/linuxrc acpi=off looptype=squashfs loop=/livecd.squashfs cdroot vga=791 splash=silent
A nother' tip is the shell that is provided if you experience problems, typically busybox or ash. The key tools to get you going from here is mount and chroot. Sometimes you will need to manually create a simulated file system and then chroot into it. For instance, you might have to create boot, etc, bin, directories on the target partition.
I generally install each OS onto the next partition (careful of the logical partition) and add it to my menu.lst after install. A good idea is after installation, copy the kernel and initrd(if there is one) to the slackware(or whatever) boot partition on hda1. I copy kernels to /boot/KERNEL/ and initrd's to /boot/INITRD, then menu.lst is more organized...
You then need to add an updated section to your menu.lst (just comment out the install section for later)
Here is the finished arch-linux section from menu.lst
title Arch Linux 6
root (hd0,2)
kernel /boot/vmlinuz26 ro root=/dev/hdc3
This doesn't use my convenient boot/KERNEL/vmlinuz26 as you can tell by setting the root to partition 3.
***NOTE: Make a backup of MBR using dd and save to floppy, also backup the partition table to floppy, using cfdisk or parted. And boot disks (I use 1 with grub, and 1 with slack, and tomsbootdisk) will invariably come in handy. Tomsbootdisk is recommended, and make the grub boot disk when you install grub. install to floppy.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
The final result after some fun experimenting, is when I boot, I have a cool grub boot screen come up with the option to boot into whatever OS I want, this is handy for multiple reasons. One good thing to do after this is to port scan and vuln scan each OS, after you update of course. Write this stuff down and you will know the weaknesses/strengths of the various OS's.
I can boot a custom Firewall, snort, or multiple honeypots using this procedure, as well as a graphical kde environment with a kernel optimized for graphics and my processor/architecture, or an environment devoted to forensics or even an environment suitable for programming.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
P.S. Some of the cooler alternative operating systems are BeOS 5, EOS, ER_OS, V2_OS, and my personal favorite Menuet. Menuet is 100% assembly graphical operating system that fits on a floppy. Its f'in money!
This should be a good enough example to get you started, this kind of thing should be learned and not just copied... Knowing how to do this stuff could prove to be exceptionally useful...Start by reading all the articles built-in on your Mac - Help > Mac Help, search "printer sharing."
http://desk.stinkpot.org:8080/tricks/index.php/2008/04/how-to-print-to-a-cups-se rver-from-mac-os-x/
http://www.macosxhints.com/article.php?story=20080324224027152&query=share%2Bpri nter
http://members.cox.net/18james/osxprintersharing.html
http://ubuntuforums.org/archive/index.php/t-56940.html -
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 -
Problem booting Arch after first install on MacBook Pro
Hi all,
I've spent the past month intermittently trying to install Arch on an old MacBook Pro with a broken screen running in clamshell mode (I've reformatted, clean installed OSX, and run pacstrap around 20 times now). I was originally trying to install Debian, but the Arch Wiki was so good that I switched. The issue has been the same anyway.
Every time I try to install, I get stuck at the bootloader stage, where I need to make the installation bootable. It doesn't matter what bootloader method I use, since I've tried:
Boot from /boot partition with GRUB
Boot from separate HFS+ GRUB partition
Boot from Apple EFI System Partition (ESP) with GRUB
Boot with rEFInd
Boot with rEFInd installed to the ESP
Arch itself works fine, but when I go to boot from rEFInd's autodetected vmlinuz-linux from 128MiB ext2 partition, I get the same error message I've gotten with every other configuration:
:: running early hook [udev]
:: running hook [udev]
:: Triggering uevents...
[ 0.558033] uhci_hcd 0000:00:1a.0: Found HC with no IRQ. Check BIOS/PCI 0000:00:1a.0 setup!
[ 0.558097] uhci_hcd 0000:00:1a.0: init 0000:00:1a.0 fail, -19
[ 0.558135] uhci_hcd 0000:00:1a.0: Found HC with no IRQ. Check BIOS/PCI 0000:00:1d.0 setup!
[ 0.558189] uhci_hcd 0000:00:1a.0: init 0000:00:1b.0 fail, -19
Waiting 10 seconds for device /dev/disk/by-uuid/2b121a89-aeb9-430a-8e6c-a05b79f08427 ...
ERROR : device 'UUID=2b121a89-aeb9-430a-8e6c-a05b79f08427' not found. Skipping fsck.
ERROR: Unable to find root device 'UUID=2b121a89-aeb9-430a-8e6c-a05b79f08427'.
You are being dropped to a recovery shell
[etc.]
When the Arch .iso live CD boots, it gets the first uhci_hcd errors, and then just moves on with:
:: hook [memdisk]
:: hook [archiso]
[etc.]
Here are the contents of my refind.conf file (/boot/efi/ESP/refind/refind.conf) (I omit all the standard comments):
timeout 0
scan_all_linux_kernels
[The example menu entries - all disabled]
menuentry "Arch Linux" {
icon /EFI/refind/icons/os_arch.icns
"Arch Boot"
loader /vmlinuz-linux
initrd /initramfs-linux.img
options "root=/dev/sda7 rw rootfstype=ext4"
And my refind_linux.conf (/boot/refind-linux.conf):
"Boot with standard options" "ro root=2b121a89-aeb9-430a-8e6c-a05b79f08427"
"Boot to single-user mode" "ro root=2b121a89-aeb9-430a-8e6c-a05b79f08427 single"
"Boot with minimal options" "ro root=2b121a89-aeb9-430a-8e6c-a05b79f08427"
My custom menu entry for Arch doesn't work either (I'm still researching exactly why). I've been quite confused by different posts all over by different people on how to configure the manual refind.conf stanzas. I also tried a direct to root menu entry, where I tried the files as /boot/vmlinuz-linux, etc.
The error I always get here is the same:
Starting vmlinuz-linux
Using load options "[same as above]"
Invalid loader file!
Error: Not Found while loading vmlinuz-linux
I've installed GRUB as well, just to be sure. Although I haven't moved it to any other partitions or 'blessed' it in OS X. (I have blessed the HFS+/EFI partitions when I used GRUB.)
Just FYI, I've used the following pages as guides:
My primary guide: Cody Littlewood's installation procedure for a MacBook Pro
The Arch Wiki MacBook Page, which was useful but a bit confusing and self-referential on the Bootloader section
The rEFInd website, by Rod Smith. I've read it fairly extensively (including an interesting comparison of SodaStream flavours)
A Gentoo Wiki page with a rEFInd example
The LFS GRUB chapter, and surrounding material
And I've largely read the Arch Wiki Beginners' Guide, Bootloaders page, GRUB page, GRUB EFI examples page, UEFI page and EFI Stub Loader page.
There have been others, but it's been a while since I read them. I've been trying to make this work for a while.
I've also looked at some other posts on similar subjects:
A post on the Arch Linux subreddit matching my (previous; with GRUB) situation, but not fixing my problem
An Arch forum post, of which there have been others, but google seems to have changed my search results.
EFI-Booting Ubuntu on a Mac, by Rod Smith
The Debian MacBook Pro page
A post about booting Debian without rEFIt
Again, there are more, but I can't find them all just now.
I've looked EVERYWHERE for a solution.
My question is, does anyone have any ideas on how I might make my computer bootable?
Almost forgot; I've run
mkinitcpio -p linux
successfully (I get the two driver warnings that seem to be standard).
Computer specifications are as follows:
Model Identifier: MacBookPro6,2 (mid 2010)
Processor Name: Intel i7
Architecture: amd64
RAM: 4GB DDR3
Graphics: NVIDIA GeForce GT 330M 512MB
Software: OS X 10.9.2
My disk partition table is as follows:
$gdisk -l /dev/sda
GPT fdisk (gdisk) version 0.8.9
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present
Fround valid GPT with protective MBR; using GPT.
Disk /dev/sda: 976773168 sectors, 465.8 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): C0ADB511-F73D-404A-B128-DD01509AE6EA
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 976773134
Partitions will be aligned on 8-sector boundaries
Total free space is 262150 sectors (128.0MiB)
Number Start (sector) End (sector) Size Code Name [Additional Info]
1 * * 200.0MiB EF00 EFI System Partition rEFInd currently installed here, mounts to /boot/efi
2 * * 185.8GiB AF00 OSX
3 * * 619.9MiB AB00 Recovery HD
4 * * 93.1GiB AF00 DMZ unjouranaled HFS+ shared partition
5 * * 4.0GiB 8200 Arch Swap
6 * * 128.0MiB 8300 Arch Boot ext2
7 * * 50.0GiB 8300 Arch Root ext4
8 * * 131.8GiB 8300 Arch Home ext4
And my fstab, made with genfstab after I mounted everything (except for the swap stanza, which I had to write):
# /etc/fstab: static file system information
# <file system> <dir> <type> <options> <dump> <pass>
# UUID=2b121a89-aeb9-430a-8e6c-a05b79f08427
/dev/sda7 / ext4 rw,relatime,data=ordered 0 1
# UUID=efb41f69-6f99-4c8b-8431-01f3cd22c9cc
/dev/sda6 /boot ext2 rw,relatime 0 2
# UUID=67E3-17ED LABEL=EFI
/dev/sda1 /boot/efi vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed, errors=remount-ro 0 2
# UUID=[another long UUID]
/dev/sda8 /home ext4 rw,relatime,data=ordered 0 2
# UUID=[another long UUID] LABEL=DMZ
/dev/sda4 /dmz hfsplus rw,relatime,unmask=22,uid=0,gid=0,nls=utf8 0 0
# UUID=[another long UUID]
/dev/sda5 swap swap defaults 0 0
Last edited by rjmh (2014-04-04 08:35:20)henriqueleng wrote:
I don't know about Mac computers but i use a uefi motehrboard,
To install it i created a partition with 512MB and i mounted /boot on there. all the rest of system are normal.
I use gummiboot, i don't know if its stuff on Mac. I think that ou should try another bootloader!
And why do you mounted two point on /boot?
/boot and /boot/efi?
Are you sure you're using uefi, my fstab looks just like his with the boot and efi partition. I'm pretty sure that's how the wiki says to set it up. That's the fstab for a laptop with uefi if it helps you out. I had problems with grub btw, so I had to set up gummiboot
# /etc/fstab: static file system information
# <file system> <dir> <type> <options> <dump> <pass>
# /dev/sdb3
UUID=0c1c97a3-0472-4141-a756-a03c00a4a3cf / ext4 rw,relatime,data=ordered,discard 0 1
# /dev/sda3
UUID=8a4412fa-5d4b-4de4-91ff-a4d05b3705e1 /home ext4 rw,relatime,data=ordered 0 2
# /dev/sdb2
UUID=971ed3e8-394d-46b3-b0d4-e8bb86b267cf /boot ext4 rw,relatime,data=ordered,discard 0 2
# /dev/sdb1
UUID=095C-CB43 /boot/efi vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro 0 2
# /dev/sda1
UUID=12a4a2b1-6338-495a-8a41-474653eb227b /var ext4 rw,relatime,data=ordered 0 2
# /dev/sda2
UUID=846803f1-3f5b-48ae-9945-37e9725011b2 none swap defaults 0 0 -
[SOLVED] Windows 8.1, lost Arch boot loader, cannot reinstall or boot
Hi all,
Apologies but I am only posting as I have exhausted my (admittedly quite limited) knowledge and have spent hours trying to get it back up and running but nothing seems to work at all. This will probably be quite long, apologies if there is something really obvious that I have missed on the Wiki or anywhere, but I'm only posting as I can't seem to get anywhere with it at all despite reading and trying.
Essentially I had a Toshiba Satellite p850-321 laptop (UEFI, secure boot off, fast boot off) which I had dual booting with Windows 8 and Arch using rEFInd. I then had several moments of madness, starting when for some reason - on very little sleep so didn't think - decided to upgrade Windows 8 to 8.1. Unsurprisingly (but a surprise for me at the time), it then booted straight into Windows 8.1, no rEFInd. In hindsight, it had probably just set itself as boot priority but I thought it had overwritten rEFInd with its own bootloader or set it back to default or something so started on a way to try and get it back.
I then spent many hours trying to get my old bootable Arch USB stick to work with no joy, updating it to the latest arch iso and all sorts. It eventually worked when I updated the laptop BIOS. Booted from the USB, chrooted into arch, reinstalled rEFInd, played around, eventually got it to reboot and display rEFInd but Arch wouldn't start. At this point I noticed that my fstab looked strange (devices/labels mixed up from what I expected), so followed the Beginner's Guide again and recreated the fstab. My disk is partitioned as follows (main partitions of note):
/dev/sda2 - Windows EFI partition
/dev/sda4 Windows 8.1
/dev/sda6 arch swap partition (archswap)
/dev/sda7 arch root partition (archroot)
/dev/sda8 arch home partition (archhome)
Couldn't get rEFInd to work so decided to start again with gummiboot. Installed gummiboot, followed Beginner's Guide to install and configure it. Edited arch.conf and after having to mess about with the location of vmlinuz-arch.efi in the conf file, I have the options part looking like this:
options root=/dev/sda7 rw
Now gummiboot loads on startup but all I get on trying to load Arch from gummiboot is the dreaded:
ERROR: device '' not found. Skipping fsck
ERROR: Unable to find root device ''.
I've tried changing the root in options in arch.conf to UUID, PARTUUID and even different partitions (just to see what happened...) - the same. Is it likely to be due to me recreating the fstab and something is messed up there?
Another problem is that now, whatever I do, I cannot boot from the USB again to get in to even try to fix anything. The laptop on boot just hangs for a while and then loads the gummiboot from the disk drive rather than from the USB (I've set the boot priority, everything) and nothing will allow me to boot from the USB. That is probably a secondary issue, I can probably try to reinstall the BIOS again and see if that helps.
If anyone has had anything similar and has any solutions I'd be really grateful - anything. I don't mind being shown to be incredibly stupid, I get that a lot so have a lot of experience! - just anything that can get me back into Arch again without having to reinstall from scratch!
Thanks.
Last edited by pilf (2013-11-02 19:45:44)Thanks for replying, very much appreciated. The partitions were numbered sequentially, I only posted up the partitions that I thought were of interest to the issue (which wasn't very helpful!). The partitions are as follows:
Partition No Type
1 Win Recover
2 EFI System (EFI partition)
3 Microsoft Reserved
4 Microsoft Basic (Windows 8.1 installation)
5 Windows Recover
6 Linux Swap
7 Microsoft Basic (Arch root partition)
8 Microsoft Basic (Arch home partition)
9 Windows Recover
It looks like I have managed to solve it, but I admit I'm not sure what of the several changes I made that solved it. I managed to boot into the USB arch disk by resetting my BIOS back to defaults and then changing the boot order back, which was the only way it would boot the USB - without resetting back and putting the boot order back exactly how it was before it wouldn't boot from the USB. Anyway...
Checked the partitions with gdisk, no problems. I did sort the partitions as you mentioned, just in case. Changed the partition names using gdisk to the same names I had before (archroot, archhome, archswap). Changed the types from Microsoft Basic to Linux filesystem (partitions 7 and 8) and wrote the partition.
Mounted everything, chrooted, edited the gummiboot arch.conf file and noticed there were some strange characters in it, a forward slash before /root in the options for example. I had edited the arch.conf file from windows by booting into Windows, mounting the EFI partition (mountvol z: /s) and editing it that way, which would have messed up the formatting. It can't have only been that though as it wasn't booting anyway which is why I went into Windows to edit the file in the first place. Corrected the arch.conf file, rebooted and it booted. Some errors on boot which I need to correct but I can work on those as it boots into my arch installation.
So all solved. I thought I'd update just to say thanks for the advice and in case it helps anyone else in the future. -
Install password in 0.7 arch install(solved!)
Downloaded the arch 0.7 base .iso and managed to load xorg and kde.
While in x, I forgot to install the password.
Now, the arch log-in appears on reboot and I have no password.
I have tried the menu items to no avail.
Whazzup? How to install passwd without X which doesn't show drom the log-in menu.From you description I assume your talking about trying to login using a login manager. When you get to the login manager hit CTRL-ALT-F1 to get to the console, then at the login prompt type in your username and hit ENTER for the password (which should work if no password was set). then use passwd at the command line to set the password. Hit CTRL-ALT-F7 to get back the the login manager.
If that doesn't work you can boot up with the install cd, mount your root partion and edit [mount-point]/etc/shadow and delete the second field in the line for you user which will reset your password to nothing. For example I would change
username:###############:12662:0:99999:7:::
to
username::12662:0:99999:7:::
you may also have to remove the "x" in the second field for you user in [mount-point]/etc/passwd also
remove the cd and reboot.
hth,
-wd -
When will arch 0.6 be released.
I need sata support to install linux. Thought about freebsd, but it looked there where to many probabilities I would kill my computer. Tried fedora, and it was crap. So I wanted to know when is 0.6 going to be release. Anybody knows or can speculate?
All,
I have succeeded in making a new installer ISO that boots and installs the 2.6.0 kernel, for both IDE and SCSI systems.
You may fetch it from:
ftp://ftp.archlinux.org/incoming/arch-0 … se-pjm.iso
I started with the 0.5-base iso and here's what I did:
* Took Judd's kernel26-2.6.0-2 package and recompiled it without the 26 suffixes;
from this I created a kernel-2.6.0-1 package
* Attempted to add all the analagous SCSI options into a kernel-scsi-2.6.0-1
* Created a base installer that uses current "base" as of this morning, only with my kernel
packages swapped in
A few tweaks needed to be made to accomodate the 2.6 kernel and the newer packages:
* Had to modify the syntax in the arch/setup script to use "file:///" rather than "local:///"
when it creates its default pacman.conf
* Had to install new versions of the module utils into the initrd.img; I took modprobe,
insmod, and lsmod from the current module-init-tools-0.9.14-3 package
* Had to install a new version of mkreiserfs into the initrd.img; I took mkreiserfs
from the current reiserfsprogs-3.6.11-1 package
I tried to keep everything else as normal as possible.
Since this isn't really a 0.5 release and it isn't 0.6 either, I called it 0.590 pre-Widget. I tried uploading once and it failed midway.. I couldn't resume, so rather than confuse everyone, I upped the version number to 0.591 for the full image.
The MD5sum for the 0.591 image should be:
496392b89e2fc2fb43fd6794105de45e
I hope this proves helpful to everyone! I'd be happy to discuss implementation detail/ choices with anyone/everyone; just email me at pjmattal at elys dot com, or drop me a message here. I was able to use it to install Arch on my new Shuttle SK43G system with an SATA drive (it's the VIA VT8237 southbridge SATA controller) and all appears to be working beautifully!
Of course, this installer is in no way sanctioned by anyone; use it at your own risk, and it may or may not represent the wishes of Judd or others; to the extent that it doesn't, I'd be happy to continue work on the image to put it in line with general thoughts about how Arch installers should be/behave.
Best,
Paul
P.S. At time of writing, the upload had not yet completed. Be sure you've got the full file before you begin your install! By 1pm EST, the full image should be present on the server. Please check your MD5sums.
Maybe you are looking for
-
I'm know axactly nothing about JAVA. So I apologize in advance if i don't make much sense. I am trying to create a PDF form where you enter one value in a field and that changes other values in multiple fields. I'm not really sure how to explain wh
-
How can I set a second reminder for a contact´s birthday?
I would like to be reminded 14 days before and at the birthday itself. In my iPad preferences under "mail,contacts,calendar" I can only set one reminder...
-
How to hide rows when no value entered automatically
is there a way in conditional formatting where i can hise a row of information when no value is entered against that row , simlar to a macro in excel? thanks fred 69
-
Impossible d'installer lion sur mac pro
il m'est impossible d'installer OSX LION sur mon MACPROPour essayé d'installer OSX LION j'ai : - supprimé ma partition RAID0 et créer une partition normale - Installé OSX SNOW LEOPARD + mise à jour 10.6.8 - Lancé l'installation de OXS LION Et la quan
-
CRM On Demand Rel 18 Patch Release Notes 1220.0.02 is Available
1. Click the Training and Support link from within CRM On Demand. 2. Click the Release Info tab. 3. Under What's New, click the Release 18 - Patch Release Notes link.