Mounting Android 2.2 to Arch Linux
I am no longer able to mount my Android phone to Arch Linux as I used to. Before, I simply used the mount command, and everything would work great. Now when I go to mount my phone with the mount command:
$ sudo mount /dev/sdf ~/External
mount: wrong fs type, bad option, bad superblock on /dev/sdf,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so.
$
I get this error in dmesg.
[ 1733.415597] usb 13-1: reset high-speed USB device number 5 using ehci-pci
[ 1733.678709] usb 13-1: reset high-speed USB device number 5 using ehci-pci
[ 1733.830922] sd 10:0:0:1: [sdf] Media Changed
[ 1733.830925] sd 10:0:0:1: [sdf]
[ 1733.830927] Result: hostbyte=0x00 driverbyte=0x08
[ 1733.830929] sd 10:0:0:1: [sdf]
[ 1733.830930] Sense Key : 0x6 [current]
[ 1733.830933] sd 10:0:0:1: [sdf]
[ 1733.830934] ASC=0x29 ASCQ=0x0
[ 1733.830935] sd 10:0:0:1: [sdf] CDB:
[ 1733.830937] cdb[0]=0x28: 28 20 03 b7 03 f0 00 00 08 00
[ 1733.830942] end_request: I/O error, dev sdf, sector 62325744
[ 1733.830945] Buffer I/O error on device sdf, logical block 7790718
[ 1733.841547] sdf:
[ 1733.951634] usb 13-1: reset high-speed USB device number 5 using ehci-pci
Every option I use to mount the phone no longer works. MTP is not an option as the phone isn't recognized (only works for version 3+). I've tried jmtpfs which does not work. I realize this is an old phone, but I don't currently have the option to upgrade to a newer one. Obviously it's the file system that isn't being identified properly, but other filesystems come up with the same error.
Any help would be greatly appreciated. Thank you in advance.
I just tried mounting the phone using the vfat filesystem (all others seemed to fail), and that seems to have worked. I think the problem might be due to the memory card. I can only read half of the folders, while the other half reports "No such file or directory" even though I can see them in the root directory.
I'll work on it today and tonight (time permitting) and see if I can come to some sort of resolution.
Last edited by 12o (2014-09-16 17:20:16)
Similar Messages
-
How to mount SATA Ntfs Partitions on Arch Linux
Please help me mounting sata ntfs partitions.
Here is my fdisk -l :
[kaola@ArchHost ~]$ sudo fdisk -l
Disk /dev/sda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x020e020e
Device Boot Start End Blocks Id System
/dev/sda1 1 371 2980026 82 Linux swap / Solaris
/dev/sda2 * 372 2803 19535040 83 Linux
/dev/sda3 2804 6450 29294527+ 83 Linux
/dev/sda4 6451 6463 104422+ 83 Linux
Disk /dev/sdb: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xd7a23d33
Device Boot Start End Blocks Id System
/dev/sdb1 2 5875 47182905 5 Extended
/dev/sdb2 * 5876 9139 26218080 7 HPFS/NTFS
/dev/sdb5 2 3918 31463271 7 HPFS/NTFS
/dev/sdb6 3919 5875 15719571 7 HPFS/NTFS
Disk /dev/sdc: 4043 MB, 4043308544 bytes
255 heads, 63 sectors/track, 491 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00050ebd
Device Boot Start End Blocks Id System
/dev/sdc1 1 491 3943926 b W95 FAT32
As far as I know, the sata ntfs partitions are those with (sdb#).
I tried mounting one of them but this is what it shows:
[kaola@ArchHost ~]$ sudo mount /dev/sdb6
mount: can't find /dev/sdb6 in /etc/fstab or /etc/mtab
Please help me, this is very annoying compared to ubuntu which does do the job pretty well. By the way, I'm using kde as my DE. Dolphin sees the partitions but cant access.
It says:
An error occured while accessing 'Backup2 HD2', the system responded:
org.freedesktop.Hal.Device.Volume.UnknownFailure: TODO:
have to rethink extra options
Reading some tutorials on ntfs-3g wiki, I've modified my fstab. Still, I can't read the partitions...Please help me, this is my fstab:
# /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
UUID=2167baaa-d1e0-4719-920c-0bc09fa56caa / reiserfs defaults 0 1
UUID=3e2250a0-ac45-458c-ba40-44ddbe8af54d /boot ext2 defaults 0 1
UUID=cbf76343-12cf-4975-9284-3360735be927 /home reiserfs defaults 0 1
UUID=f39da452-efe4-49d0-abd4-bb5246b83b33 swap swap defaults 0 0
/dev/cdrom /media/cdrom auto ro,user,noauto,unhide 0 0
/dev/dvd /media/dvd auto ro,user,noauto,unhide 0 0
UUID=2167baaa-d1e0-4719-920c-0bc09fa56caa / reiserfs defaults 0 1
UUID=3e2250a0-ac45-458c-ba40-44ddbe8af54d /boot ext2 defaults 0 1
UUID=cbf76343-12cf-4975-9284-3360735be927 /home reiserfs defaults 0 1
UUID=f39da452-efe4-49d0-abd4-bb5246b83b33 swap swap defaults 0 0
/dev/sdb1 /mnt/ntfs1 ntfs-3g users,noauto,uid=1000,gid=100,fmask=0113,dmask=0002,locale=en_US.utf8 0 0
/dev/sdb2 /mnt/ntfs2 ntfs-3g users,noauto,uid=1000,gid=100,fmask=0113,dmask=0002,locale=en_US.utf8 0 0
/dev/sdb5 /mnt/ntfs3 ntfs-3g users,noauto,uid=1000,gid=100,fmask=0113,dmask=0002,locale=en_US.utf8 0 0
/dev/sda6 /mnt/ntfs4 ntfs-3g users,noauto,uid=1000,gid=100,fmask=0113,dmask=0002,locale=en_US.utf8 0 0
Last edited by kaola_linux (2008-10-04 14:51:24)AD28 wrote:
For seamless integration similar to Ubuntu:
Follow this wiki for ntfs-3g installation and fstab configuration.
For basic on-demand support:
# pacman -Sy ntfs-3g
and mount with:
# mount -t ntfs-3g /dev/sdbX /mnt
Now that did the trick!!!!!
A happy Arch Linux user here!!!!hehee
Any idea how to automate this? I want it to be automatically mounted so that it would be easy to transfer files...Pleasssseeeeee.....Thanks -
[SOLVED] Mount Points In Arch Linux
When I performed my initial testing install of Arch Linux today, and I was setting up mount points after I finished partitioning with Cfdisk, I was surprised to see that one of the precanned mount points in the Installer was /etc. On OpenBSD, we were warned against having /etc on its own partition, probably because so much important stuff lives there (like the fstab). I was also surprised to see /var wasn't in the precanned list.
Anyway, my question is, can you really have /etc on it's own partition? And does the exclusion of /var indicate a problem with it being on its own partition?
Last edited by NerveJessen (2010-04-02 12:50:38)NerveJessen wrote:
It almost sounds like /var was accidently replaced by /etc.
EDIT: I'll look into the bug reporting procedures.
http://bugs.archlinux.org/
There is the FLySpray link, and there is a button at the top right of your screen as well.
Post back within this thread with your bug report, so other users may vote for the task once it has been assigned to a developer.
Welcome to Arch! -
[GUIDE] How to get MapleStory working in Arch Linux
MapleStory is a free-of-charge, 2D, side-scrolling massively multiplayer online role-playing game developed by the South Korean company Wizet. Several versions of the game are available for specific countries or regions, and each is published by various companies such as Wizet and Nexon. Although playing the game is free, character appearances and gameplay enhancements can be purchased from the "Cash Shop" using real money. MapleStory has a combined total of over 50 million subscriber accounts in all of its versions. MapleStory North America (Global), for players mainly in North America and outside of East Asia, Southeast Asia and Europe, has over three million players.
In the game, players travel the "Maple World", defeating monsters and developing their characters' skills and abilities as is typical in role-playing games. Players can interact with others in many ways, such as through chatting, trading, and playing minigames. Groups of players can band together in parties to hunt monsters and share the rewards. Players can also join a guild to interact more easily with each other.
I am an avid mapler myself, however, I am also an avid archer! For some time, I have wanted to get MapleStory working on Arch Linux in some way, but nothing seemed to work. As you might have guessed by now, recently, while playing around with VirtualBox, I discovered a method to get MapleStory working on it! Though in this method you won't actually have MapleStory running on Arch Linux, you'll have it running on a VirtualBox Windows virtual machine, that is still pretty good compared to other people's experiences.
I hope there are at least a few maplers on this forum, and if there aren't, I hope that someone will port this post over to other Linux, or even MapleStory, forums. Anyways, let's begin.
1. Download and install a version of Virtual Box that is version 3.0+. The reason for this is that, only versions 3.0+ support an experimental DirectX Driver with 3D acceleration that is required for MapleStory to run.
2. Create a Windows Virtual Machine, add a hard disk to it, and install and update Windows on it(preferably Windows XP, as it uses less resources than other contemporary Windows installations).
3. Once you have done all you needed and wanted on that Windows installation, restart it, boot it into safe mode by holding F8 at the boot, and wait until the desktop is fully loaded.
4. After you are at the desktop, go to "Devices" at the top of the menu of the Windows virtual machine, and select "Install Guest Additions...". Wait until Guest Additions finishes installing, and when VirtualBox asks you if you want to mount the disk containing the Guest Additions on the virtual machine, say "Yes".
5. Run the main executable on the disk that doesn't have amd64 or x86 following its name. Follow the instructions it gives you, and when it asks you what components to install, make sure both of the boxes it shows you are checked.
6. After the install is completed, the virtual machine will restart. After it restarts, shut it down.
7. Congratulations! You now have DirectX installed on your VirtualBox virtual machine! Now you need to activate the "3D Acceleration", that enables it.
8. In the VirtualBox main window, make sure you have your machine with Windows selected. Then, click on "Machine", and then "Settings...", at the top. A new window should pop up. On the left hand side, click on the display panel, and in the new settings section, tick Enable 3D Acceleration. Click "OK", to save the settings.
9. Start your Windows virtual machine, install MapleStory just as you would on a normal windows computer, and run MapleStory.
Notes: This way of running MapleStory is slower than by running it normally, on a normal windows computer. Also, try to not interact with your Linux desktop while playing MapleStory, because this can cause HackShield to shut down MapleStory, due to the fact that it believes there is a hacking attempt.
If any of you port this guide to any other place on the web, please, credit me, neovaysburd5.
For any further questions or inquiries, this goes to all of you, please contact me at [email protected].
Last edited by neovaysburd5 (2009-08-19 16:51:31)Alright, I've posted it in the wiki. I don't know if it meets the Arch Linux wiki standards, so if there is absolutely anything wrong with it, please fix it right away. Don't even ask my permission.
http://wiki.archlinux.org/index.php/MapleStory -
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 -
[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] Arch Linux Duke (2007) Fails to Boot
Folks, I have a unique and challenging problem that has exhausted my Arch Linux skills, and so I am now turning to you.
I have a vintage Pentium Pro 200 system (that’s 200 MHz folks! – 200 MHz 686 architecture – the original 686!), two CPUs, running a dual boot between Windows NT 4.0 and Arch Linux Duke (2007). It has 512 MB of RAM and a 120 GB hard drive, partitioned up between Windows NT and Linux. I built this system new in 2007, hence the dated version of Arch. It has run like a charm all these years, granted not getting that much use. After about a year of no use at all, I fired the system up last week to help with a little research for a blog post I was writing on networking Windows NT 4.0 and Mac OS 8.6. Windows NT 4.0 fired right up with no issue, and after I was done testing what needed to be tested I tried to boot over to Arch.
After a year of disuse, Arch unexpectedly and stubbornly refused to boot. The boot process started up just fine, but towards the end, it declared that it could not mount the root file system on the root device and took a kernel panic and stopped. My Arch skills have gotten a bit rusty in the last few years, but I dusted them off and went to work. My guess was a file system or superblock error. Arch wouldn’t boot, but I dragged out my trusty RIPLinux 2.9 Rescue Live CD and fired it up. It came right up and ran, and I was able to mount the Arch partition and view all the files… everything seemed to be there; it just wouldn’t boot. Windows NT 4.0 AND RIPLinux both boot and run on the machine, so the hardware is fine as well.
A little information on the disk layout. Windows NT 4.0 is in the first partition on the hard drive. The extended partition has a second Windows NT 4.0 partition (sort of a /home partition for Windows NT 4.0), followed by the main Arch partition (the one I am trying to boot), followed by a swap partition and then the largest partition, which I use to share data between Arch and Windows NT 4.0 (I have loaded an ext2/3 driver into Windows NT 4.0 and it happily accesses the Linux partitions on the box).
RIPLinux’s e2fsck did find some issues with the Arch partition and I had it repair them all. I checked again afterwards that all the files were still there, and they were. With the partition now known to be clean, and the superblock repaired from one of the backups, all should have been well. However, Arch still wouldn’t (and still won’t) boot.
RIPLinux has a kind of a chain loader function, so I had it attempt to start up Arch for me. However, this was flummoxed by the fact that Arch addresses all my hard drive partitions as /dev/sdax and RIPLinux addresses them as /dev/hdax. Hence, without a common language, it was hard to get the one to start the other. Still, using this function, I have been able to get a crippled version of Arch running on the machine again. No modules had been loaded, and so it couldn’t do almost anything, but there it was (and is), Arch Linux Duke, at the CLI level. From there, I can see all the files, I can move freely in and out of my user account and the root account, but I can’t make the thing actually boot properly.
If you have read this far, you are a trooper. Summarizing what I know, the hardware is good, the file system is clean, the superblock is good, I can mount it cleanly from a live CD and I can chain load a crippled version of Arch. Here is the boot process blow-by-blow. When I try to do a normal boot, the Windows NT 4.0 loader passes control to the Lilo boot sector I have placed on hda1 (sda1 in Duke’s parlance). Lilo takes over, present a menu and when I select Duke, takes off. Arch Linux Duke starts to boot. It gets a good long way along, all the way along to:
:: Loading udev events [Pass]
:: Mount root Read-only
:: Checking file systems
This is where it stops.
The next thing I see is:
/dev/sda6
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>
I then get a sort of character based splash screen that says
**********FILE SYSTEM CHECK FAILED ****************************
* Please repair manually and reboot. Note that the root file system
* is currently mounted read-only. To remount it read-write, type:
* mount –n –o remount,rw /. When you exit the maintenance
* shell, the system will reboot automatically
Give root password for maintenance
At this point, I give the root password and enter the maintenance shell as root. I typed in “mount” and the first entry I got back is
/dev/sda6 on / type ext3 (rw)
This is exactly the root partition that the start up complains about. It is clearly there. I can see it, I can walk around it… it is clearly there. Why won’t it boot? Despite the message, the superblock is fine – it passes every test e2fsck can throw at it.
At this point, I did a “e2fsck /dev/hda6 (which is how RIPLinux would have passed it into Arch” and it says it is “clean”. I suspect that the Superblock message is because Arch sees root as sda6, while RIP passed it in as hda6...
Deciding to see what Arch would be seeing as it tried to set things up in the boot sequence, I tried the following next:
# mknod “/dev/root2” b 3 6
(“3” because RIPLinux refers to my hard drive as IDE, while Arch refers to it by major number “8”, which is SCSI. By the way, it IS an IDE drive – not sure why Arch insists on using the sdx nomenclature instead of hdx)
Then I entered “mount /dev/root2 /mnt/hda6” and “ls /mnt/hda6”
All was well. I can make the node, I can mount it, and I can see the contents. All is clearly well, but something is clearly wrong enough that Arch can’t boot.
I am totally out of ideas. I have tried every trick I know and am out of tricks. I would welcome any insights as to what I could try to get this venerable Arch installation back on its legs.
By the way, the key section of the /etc/lilo.conf file (lest anyone want to know) is:
image = /boot/vmlinuz26
root = /dev/sda6
label = ArchLinux-Duke
initrd = /boot/kernel26.img
read-only
I am stumped. Thanks in advance for any and all pointers you may be able to offer.
Last edited by mac57 (2014-06-02 17:42:21)Folks, thanks for all your helpful comments, and I wanted to report back to you that I finally overcame the issue, and ArchLinux-Duke (2007) is once again executing flawlessly on my old Pentium Pro 200 system. I won't bother reporting here all the blind allies I went down as I tried to figure out what was wrong, but in the end, literally moments before I was about to give up and overwrite my Arch installation with a new Linux variant (antiX seemed well suited for such old and low power hardware), my attention was drawn to a note I had made in my files back in 2007 about a problem with similar symptoms. In that case, I had just deleted ZenWalk Linux from the hard drive (both Arch and Zen had been on the drive), and merged several partitions to make use of the newly free space. This had changed Arch's view of the drive lettering, and what had been its /dev/sddx root device was now /dev/sdcx. Arch failed to boot, throwing off the same errors I was seeing now. I wish I had recalled that note a month or so ago! It would have saved me a lot of work and a lot of frustration.
At any rate, as a last step, and testing the idea that maybe the drive lettering had changed for some reason, I repeatedly manually booted Arch, specifying root=/dev/sda6, then /dev/sdb6, then /dev/sdd6, and finally, /dev/sdc6. Eureka! Arch now considered itself to be on /dev/sdc6 whereas previously it had been on /dev/sda6. This got me part way there, but the boot failed at the filesystem check stage and threw me into root. I disabled the file system check in /etc/rc.sysinit and got farther. Then I cleaned up /etc/fstab to agree with the new sdc naming, and I was back on the air fully.
So, what had happened was that Arch had changed its view of the drive it was on from sda6 to sdc6. While I could not understand why this "sudden" change had occurred, at least I had a solution, and had Arch back up and running.
Trolling through the rest of my notes, I found the answer. In 2012, the Tekram SCSI card in the machine failed, and I ultimately replaced it with an Adaptec card. The Tekram card did not have a BIOS segment on it. The Adaptec card did. My guess is that this caused the two internal SCSI devices I have built into the system (Iomega ZIP and Jaz respectively) to be enumerated first, claiming the "sda" and "sdb". device names. That left "sdc" for the root device, and that is where Arch went next. This is my guess anyway.
I should have caught this issue back in 2012, at the time, but from my notes, I can see that I tested the new card thoroughly using the Windows NT 4.0 side of the machine, but never thought to bring up Arch as well. Hence, this problem lay dormant for two years, before I attempted to fire up Arch last month and blundered right into it.
It has not all been bad. I have learned more about the ext2 and ext3 file systems and superblocks in the intervening time than I will ever need to use. I have learned how to manually boot Linux on a machine whose BIOS is so old that it cannot address the disk cylinder that the kernel is on and I have completely refreshed the many general Linux skills that used to just flow from my finger tips. It has been a frustrating experience, but ultimately a successful and useful one.
Just wanted to let everyone know that this is now [SOLVED]. I would mark the post as such, but I don't see any obvious way to do that. Thanks again everyone. -
[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 ? -
HOWTO: Repairing a headless Arch Linux system that fails to boot
The scenario...
I have a "headless" (no monitor or input peripherals) Arch Linux computer that is connected to a local network via a wireless adapter, and accessed from other computers via SSH.
Earlier today I accidentally broke its kernel so it did not boot anymore.
Idea: Temporarily connect a monitor to the computer, boot from a live CD (like the Arch Linux install CD), then chroot into the system and fix it.
Problem: I didn't have a compatible monitor at hand.
Idea: Log in to the live CD session from another computer via SSH.
Problem: The live CD can't auto-configure the headless computer's wireless connection, and setting it up manually while working "blind" would be a major hassle. A direct LAN connection to the router wasn't available either.
Idea: Connect directly with a laptop via an Ethernet cable, and then use SSH from the laptop => This solution worked for me!
If you find yourself in a similar situation, you can follow this tutorial which describes the solution that worked for me in detail...
You need:
a copy of the Arch Linux install CD (I used the 2013-05-01 version)
an Ethernet cable
a keyboard (might be dispensable, with additional preparation)
a functional Arch Linux laptop (or other computer within physical range)
Step 1) Prepare the live CD...
I used the plain Arch Linux install iso, burnt to CD.
By creating a carefully customized version of the live CD using Archiso, you might be able to eliminate the need for steps 2 and 4 - however that's not covered in this tutorial.
Step 2) Prepare the laptop...
The laptop needs to be configured in such a way, that the live CD's attempt to automatically establish an Ethernet connection with it will succeed:
a) IP address
In my case, the Laptop's wireless adapter had an IP address in the range 192.168.1.*, connecting it to the local network and Internet via the central router 192.168.1.1.
The Ethernet connection between the laptop and the headless computer becomes a separate mini-network, for which I decided to use IP addresses in the range 192.168.0.* (note the different third number). Specifically, I set the IP address of my laptop's Ethernet card to 192.168.0.1. You can do this by running the following as root (replace "eth0" with the name of your Ethernet interface):
ip link set eth0 up
ip addr add 192.168.0.1/24 dev eth0
b) IP forwarding (optional)
While we're at it, we might as well enable IP forwarding, so that the live CD session on the headless computer will be able to directly use the laptop's outgoing Internet connection (which will make it much more convenient to install/upgrade packages during the repair session). To enable this, run the following as root (replace "eth0" and "wlan0" with the names of your laptop's Ethernet and wireless interfaces, respectively):
iptables --table nat --append POSTROUTING --out-interface wlan0 -j MASQUERADE
iptables --append FORWARD --in-interface eth0 -j ACCEPT
sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
c) DHCP
The live CD will assume there's a router on the other side of the Ethernet link, and ask for an IP address via DHCP. So all we need to do, is run a dhcp server on the Laptop that will answer this request. It's surprisingly easy: Just install the package dnsmasq, and put the following in the file /etc/dnsmasq.conf (again replacing "eth0" as appropriate):
interface=eth0
dhcp-range=192.168.0.2,192.168.0.2
By setting the start & end values of dhcp-range to the same IP address, we enforce that this specific IP address will be used by the live CD on the headless computer.
Then start the daemon by running the following as root:
systemctl start dnsmasq.service
Step 3) Connect everything and boot up the live CD...
Connect the laptop and the headless computer via the Ethernet cable.
Connect the external keyboard to the headless computer.
Then put the Arch Linux install CD into the headless computer's drive, and boot. Wait a minute or so to give the CD time to load its boot menu (you should hear the CD drive spin up and settle down again). Then hit ENTER on the connected keyboard, to activate the default menu choice (which will boot straight to a live Arch Linux session with root privileges).
You can check whether it booted up and successfully initialized the Ethernet connection, by ping'ing the IP address that was specified in step 2c) from the laptop:
ping -c3 192.168.0.2
Step 4) Start the SSH server...
Unfortunately, the Arch Linux install CD doesn't automatically start its SSH server, and also it uses a randomized root password. To make SSH connections possible, you will have to use the connected keyboard to type in some stuff "blindly" (but it's simple enough):
type "passwd" (without the quotes)
type in a new password of your choice
press ENTER
type in the same password again
press ENTER
type "systemctl start sshd" (without the quotes)
press ENTER
Step 5) Connect from the laptop via SSH...
Now you can open an SSH connection, by executing the following on the laptop (when it asks for the password, enter the one you chose in step 4):
ssh [email protected]
Step 6) Profit!
Within this SSH shell on the laptop, you can now do whatever you would usually do to fix an Arch Linux system from a live CD.
You'll probably want to chroot into your Arch root partition, which is very easy thanks to the arch-chroot tool that is included on the live CD (replace "/dev/sda3" with the name of the headless computer's root partition):
mount /dev/sda3 /mnt
arch-chroot /mnt
If you set up IP forwarding as described in step 2b), then Internet access should magically work in this shell without any further configuration, so you can freely use pacman etc. inside the chroot.
Enjoy!
Last edited by sas (2013-07-26 22:17:03)It is definitely able to recognize the USB and DVDs as separate drives; it gives the option of booting from USB, and it gives the memory capacity of the USB drive I used as a live USB, and the memory used for the live CD. But when it comes time to actually boot, something is going wrong.
I would suspect it is a problem with the BIOS, if not for the fact that I had a similar issue on my previous system, which used a completely different motherboard. If it is the same issue, it would either have to be a problem with the DVD drive (although I don't know why it would be against loading some live CDs but not others) or perhaps the way I created the live CDs. Although, again, I don't understand why the Linux Mint 32-bit DVD would work fine, while both 64-bit DVDs would not.
I will try using a different DVD drive to boot the DVDs, and if that does not work, I'll try creating a new Arch live CD to see if I can resolve the issue. But if anyone has any ideas, it would still be greatly appreciated. -
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 -
Pen drive usb transcend crazy over arch linux
The model in question is a pen drive 4Gb Transcend JetFlash V33 that when I enter the port usb notebook with arch Linux not mount automatically (which have done all pen drive I used up to now, friends, colleagues, etc. ...). With gparted (from arch linux) tells me that the pen drive has a space-512mb (unless, that is negative) and space is not allocated (not formatted). Impossible mount from terminal, I type a message from the beginning that the size of the device can not be found after its end (and we believe with a capacity of -512). I gave the pen drive to a friend with windows Xp, where it is regularly recognized (4 gb, FAT 32). Even with the live CD systemrescueCD is regularly recognized and I move into pen a text file above (to test) after mounted it using the terminal. The text file was also seen in windows Xp. I didn't experiment with other Linux distributions. Someone knows that cabbage can be. Sorry for my bad english. Thank you.
It is definitely able to recognize the USB and DVDs as separate drives; it gives the option of booting from USB, and it gives the memory capacity of the USB drive I used as a live USB, and the memory used for the live CD. But when it comes time to actually boot, something is going wrong.
I would suspect it is a problem with the BIOS, if not for the fact that I had a similar issue on my previous system, which used a completely different motherboard. If it is the same issue, it would either have to be a problem with the DVD drive (although I don't know why it would be against loading some live CDs but not others) or perhaps the way I created the live CDs. Although, again, I don't understand why the Linux Mint 32-bit DVD would work fine, while both 64-bit DVDs would not.
I will try using a different DVD drive to boot the DVDs, and if that does not work, I'll try creating a new Arch live CD to see if I can resolve the issue. But if anyone has any ideas, it would still be greatly appreciated. -
[HOWTO] Installing Arch Linux stable release on Acer Aspire One 522
[This is a work on progress and my first howto ever]
These steps will teach you how to install ArchLinux x64 stable release (currently 2010.05) on Acer Aspire One 522 from an existing ArchLinux (your desktop computer)
As you need a 2.6.37+ kernel to make networking work on the AO522, installing stable release as is won't work.
This Howto borns with the intention to address this problem.
You need to be familiarized with Linux internals to follow this howto.
(Expect this howto to become useless with new stable releases of ArchLinux.)
Remember to make a backup of your Windows 7 Starter system before installing ArchLinux.
I did a full raw copy of the harddisk by using systemrescuecd, an external harddisk and dd utility:
Just boot with systemrescuecd
Mount your external harddisk on /mnt/floppy for example
Clone harddisk with: dd if=/dev/sda |gzip -c > /mnt/floppy/ao522.img
This process took me a lot of time since my external harddisk is USB-1 (almost an entire evening)
Result image was about 22GB size
This image will restore partition table, boot sector and all data if things go wrong.
I followed some of the steps from this guide: https://wiki.archlinux.org/index.php/In … ting_Linux
If you have some Gentoo Linux experience you will find those steps really familiar.
You will need 2 USB pendrives or similar storage options.
One is needed to boot into your netbook, and the other to store our custom archlinux build.
Making an updated ArchLinux system
1) Make a local dir on your existing linux system
# mkdir ./newarch
2) Install pacman database on it
# pacman -Sy -r ./newarch
3) Install base system
# pacman -S base -r ./newarch
4) Let's chroot inside
# cp /etc/resolv.conf ./newarch/etc/
# cp /etc/pacman.d/mirrorlist ./newarch/etc/pacman.d
# mount -t proc proc ./newarch/proc
# mount -t sysfs sys ./newarch/sys
# mount -o bind /dev ./newarch/dev
# chroot ./newarch /bin/bash
5) Edit configuration files
# nano -w /etc/rc.conf
# nano -w /etc/hosts
# nano -w /etc/mkinitcpio.conf
Forget /etc/fstab for now since you don't know what partitions to use yet
6) Generate kernel image
# mkinitcpio -p kernel26
7) Generate locales
# nano -w /etc/locale.gen
# locale-gen
8) Make a tarball with our custom ArchLinux
# exit
# umount ./newarch/proc
# umount ./newarch/dev
# umount ./newarch/sys
# tar -cvpf newarch.tar ./newarch
9) Copy this tarball to an USB pendrive or external harddisk
10) Boot your netbook with a Linux bootable USB stick (I used systemrescuecd, and remember to pick the x64 bit kernel at grub screen)
You can use any linux distribution with usb bootable options. I suppose ArchLinux works too
To install SystemRescueCD on an USB stick follow this tutorial -> SystemRescueCD on usb stick
Insert the usb stick on your netbook, switch on, hit F2 to enter BIOS menu, and choose to boot from USB as first option. Save and Exit.
You should be booting into SystemRescueCD without any problem.
After initialization you will end in a root prompt.
11) Let's partition the disk
You will find 3 partitions if this is your first time:
/dev/sda1 2048 29362175 14680064 27 Hidden NTFS WinRE
/dev/sda2 * 29362176 29566975 102400 7 HPFS/NTFS/exFAT
/dev/sda3 29566976 488397167 229312696 7 HPFS/NTFS/exFAT
My recomendation is to leave sda1 and sda2 intact, as they have the recovery information to restore Windows 7 Starter
You have plenty of space with sda3, about 230G.
So run fdisk/cfdisk and delete /dev/sda3
Now create a 100M partition for boot
Now create a Extended partition with all the space left
Now create a 1GB logical partition for swap
Now create a 10-15 GB logical partition for root system
And finally a logical partition for our home partition with all space left
Your partition table should look like this:
/dev/sda1 2048 29362175 14680064 27 Hidden NTFS WinRE
/dev/sda2 * 29362176 29566975 102400 7 HPFS/NTFS/exFAT
/dev/sda3 29566976 29771775 102400 83 Linux
/dev/sda4 29771776 488397167 229312696 5 Extended
/dev/sda5 29773824 31821823 1024000 83 Linux
/dev/sda6 31823872 63281151 15728640 83 Linux
/dev/sda7 63283200 488397167 212556984 83 Linux
12) Create filesystems
I choosed ext2 for boot, and reiserfs for root and home partitions.
# mke2fs /dev/sda3
# mkreiserfs /dev/sda6
# mkreiserfs /dev/sda7
# mkswap /dev/sda5
13) Mount partitions
# mkdir arch
# mount /dev/sda6 arch
# mkdir arch/boot
# mount /dev/sda3 arch/boot
# mkdir arch/home
# mount /dev/sda7 arch/home
14) Copy our custom ArchLinux build on it
# mount /dev/sdb1 /mnt/floppy (for example)
# cd arch
# tar -xvpf /mnt/flopy/newarch.tar
15) Configure /etc/fstab
Mine is as follows:
devpts /dev/pts devpts defaults 0 0
shm /dev/shm tmpfs nodev,nosuid 0 0
/dev/sda3 /boot ext2 defaults 0 1
/dev/sda6 / reiserfs defaults 0 1
/dev/sda7 /home reiserfs defaults 0 1
/dev/sda5 swap swap defaults 0 0
16) Chroot in your new system
# mount -t proc proc ./proc
# mount -t sysfs sys ./sys
# mount -o bind /dev ./dev
# chroot ./ /bin/bash
17) Install grub
# grub-install
Edit /boot/grub/menu.lst to suit your needs
Mine looks like this:
timeout 5
default 0
color light-blue/black light-cyan/blue
title Arch Linux
root (hd0,2)
kernel /vmlinuz26 root=/dev/sda6 ro
initrd /kernel26.img
title Arch Linux Fallback
root (hd0,2)
kernel /vmlinuz26 root=/dev/sda6 ro
initrd /kernel26-fallback.img
title Windows 7 Recovery
rootnoverify (hd0,0)
makeactive
chainloader +1
As you see, you can restore Windows 7 Starter from Grub.
18) Change root password
# passwd
19) Add a regular user account
# useradd -G video,audio,users -m username
# passwd username
20) You're done!
# exit
# cd ..
# umount ./arch/proc
# umount ./arch/dev
# umount ./arch/sys
# umount ./arch/boot
# umount ./arch/
# reboot
Remove the usb stick from your netbook.
If all went ok, you will be inside your new stable and updated ArchLinux system
Next post is reserved for software configurations specific to the Acer Aspire One 522
Last edited by tigrezno (2011-04-20 12:22:38)Using acpid to achieve the following:
- Change screen brightness when operating in battery mode
- Power off when the power button is pressed
- Suspend when the lid is down
- Reduce CPU frequency speed to maximize battery usage
Remember that system suspend is only supported by ati free driver xf86-video-ati
1) Install acpid daemon and cpufrequtils
# pacman -S apcid cpufrequtils
2) edit acpid handler script
# nano -w /etc/acpi/handler.sh
Change the following section:
ac_adapter)
case "$2" in
AC)
case "$4" in
00000000)
echo -n $minspeed >$setspeed
#/etc/laptop-mode/laptop-mode start
00000001)
echo -n $maxspeed >$setspeed
#/etc/laptop-mode/laptop-mode stop
esac
*) logger "ACPI action undefined: $2" ;;
esac
for:
ac_adapter)
case "$2" in
ACAD)
case "$4" in
00000000)
echo 3 > /sys/devices/virtual/backlight/acpi_video0/brightness
cpufreq-set -c 0 -f 800Mhz
cpufreq-set -c 1 -f 800Mhz
00000001)
echo 9 > /sys/devices/virtual/backlight/acpi_video0/brightness
cpufreq-set -c 0 -f 1000Mhz
cpufreq-set -c 1 -f 1000Mhz
esac
*) logger "ACPI action undefined: $2" ;;
esac
Make sure you changed AC) for ACAD)
Now change this other section:
button/power)
#echo "PowerButton pressed!">/dev/tty5
case "$2" in
PWRF) logger "PowerButton pressed: $2" ;;
*) logger "ACPI action undefined: $2" ;;
esac
with:
button/power)
#echo "PowerButton pressed!">/dev/tty5
case "$2" in
PWRF) poweroff ;;
*) logger "ACPI action undefined: $2" ;;
esac
Change:
button/lid)
#echo "LID switched!">/dev/tty5
logger "ACPI group/action undefined: $1 / $2"
for:
button/lid)
pm-suspend && /etc/rc.d/network restart
logger "ACPI group/action undefined: $1 / $2"
Network restart is used because wlan0 will disconnect from AP after some time. You can try using iwconfig wlan0 essid <ap> key <key> instead of the network script, but haven't tested it myself.
3) Start acpid and load modules
# modprobe powernow-k8
# /etc/rc.d/acpid start
Add "acpid" to DAEMONS in /etc/rc.conf to start on boot
Add "powernow-k8" to the modules sections on /etc/rc.conf to load at boot
Stopping system freezes due to ethernet driver
The only way people have found to avoid freezes is by blacklisting atheros kernel drivers.
To do it at boot just edit /etc/rc.conf and change the MODULES line as this:
MODULES=(!ath9k !atl1c)
Reboot and you're done, but remember to not press the Wifi key, because it can freeze your system.
Correctly starting wireless at boot
I've found that standard scripts wont load properly my wireless lan. It gave an error telling you to use the WIRELESS_TIMEOUT variable and such.
To solve this, edit /etc/rc.d/network script and change the wi_up function by adding a second iwconfig command like this:
wi_up()
eval iwcfg="\$wlan_${1}"
[[ ! $iwcfg ]] && return 0
/usr/sbin/iwconfig $iwcfg
[[ $WIRELESS_TIMEOUT ]] || WIRELESS_TIMEOUT=2
sleep $WIRELESS_TIMEOUT
/usr/sbin/iwconfig $iwcfg
bssid=$(iwgetid $1 -ra)
It will do the trick and will start at boot correctly. This is not a solution but a fix.
Adjust Touchpad to disable false taps
What I did here is defining an area to be ignored. This area are 3 rectangles on top, left and right of the touchpad.
This means you can write and press space without having the cursor click out of the window and such.
# synclient AreaLeftEdge=150
# synclient AreaRightEdge=1300
# synclient AreaTopEdge=300
Also, add it to your /etc/X11/xorg.conf.d/10-evdev.conf:
Section "InputClass"
Identifier "evdev touchpad catchall"
MatchIsTouchpad "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
Option "AreaTopEdge" "300"
Option "AreaLeftEdge" "150"
Option "AreaRightEdge" "1300"
EndSection
You can play with those values. They just work for me.
Last edited by tigrezno (2011-04-23 13:49:48) -
[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) -
Having difficulty installing arch linux
Okay, so currently I have Windows. Before I put in the CD and restart my computer, I went to the Windows disk manager, and created some partitions so I wouldn't have to do it from the installation (I fear I may mess up and erase all my data). I'm trying to get a dual boot so i created partitions like http://wiki.archlinux.org/index.php/Win … _Dual_Boot suggested. All the new partitions I created were raw, I didn't give them a filesystem. When I start the installer with the Arch Linux Net CD, and get to the Hardware part, I select "Manually configure block devices, filesystems and mountpoints." It shows a list of partitions except they ALL appear to be raw. I think it had the correct number of partitions, but I had no idea which one's were supposed to be my Windows partitions (i.e. Windows and Recovery partition) and which one's were the new one's I created. Not wanting to screw anything up, I decided to restart and ask for help here. Why don't my Windows partitions show up as having an NTFS filesystem?
Also, that article I linked to said the boot partition should be in the first 8.5 GB of the disk. Is it possible to do this in the Window's disk manager?
Last edited by Kurushimi (2010-01-27 03:29:42)Greetings,
Do you remember the order you made the partitions in? If not either Ctrl Alt F2 to open a new TTY and run cfdisk to get your partition info or reboot back into windows and open your partition manager tool and get the information and remember to write down, what is in first partition, what is in second partition, and so on... If using the cfdisk method you hit Ctrl Alt F1 to go back to your installation screen.
Please note that first partition = SDA1, second = SDA2, third = SDA3, and 4th = SDA6.
You said you already crated a arch /home partition? That is not so until you have mounted and created the file system so no worries there. Just make SDA6 (assuming that is the large arch partition) your root / partition. You don't have to create a /home partition. Which ever is the windows partition, just ignore it/them in this step. The installer itself doesn't recognize NTFS as a file system in this process so it won't show it listed as one, but it is there.
Hope this helps, and good luck to you! -
[SOLVED] Arch Linux Guest Virtual Box OSE problem
So I am installing my Arch Linux as a Guest in my Ubuntu partition, through Virtual Box OSE (3.2.8). I followed the wiki ( https://wiki.archlinux.org/index.php/Ar … lBox_Guest ) but still have an issue:
sudo pacman -S kernel26-headers xorg gcc make
sudo mount /dev/cdrom /mnt/cdrom
sudo /mnt/cdrom/VBoxLinuxAdditions-x86.run
But It fails on Shared folders, and cannot recognize X:
:: Building the VirtualBox Guest Additions Kernel Modules [BUSY]
:: Building the main Guest Additions module [DONE]
:: Building the shared folder support module [FAIL]
(Look at /var/log/vboxadd-install.log to find otu what went wrong)
:: Warning: Unknown version of the X Window System installed. Not installing X Window System drivers.
:: Installing graphics libraries and desktop services components [Done]
/var/log/vboxadd-install.log states:
/tmp/vbox.0/vfsmod.c:406:9: error: unknown field 'clear_inode' specified in initalizer
/tmp/vbox.0/vfsmod.c:406:9 warning: initalization from incompatible pointer type.
Which is strange, because as far as I know, clear_inode is part of the linux headers.
Any idea why this is happening? Do I just need to update VirtualBox to a newer version?
Last edited by gralamin (2011-03-11 18:22:14)Updating Virtualbox fixed the issue.
Maybe you are looking for
-
How do you convert a pdf to word if it has XFA format
Trying to convert a government form to word from pdf but got the following error message: PDF files containing XFA forms cannot be saved to the specified format. Also tried exel or rich text with no success. Any help would be appreciated
-
Lens Correction Manual Slider Bug!
Hello, I've been having a problem with the Lens correction Manual Sliders. Constrain Crop selected. The vertical and horizontal sliders are behaving more like the distortion slider. When sliding left or right they are pulling from the center, rather
-
Why does it have to be this difficult? JES installation and a reboot
Hi, I downloaded JES for Windows, and I went through the default installation and configuration process. Everything works fine. I can use the Access Manager screens to create users and I got one of the example programs working that allows me to test
-
AirDrop not working since update
I Have an iMac, iPad mini, iPad and iPhone 5s. We updated to to the new operating systems 2 weeks ago On all devices. Now airdrop does not work on any device. AirDrop to everyone is enabled, turned on under sittings. I turned it off, restarted, turne
-
No such domain/application: "orabpel"
Hello, I am using a web application to call a bpel process, but when the application tries to do the lookup it launches this exception: Caused by: java.lang.Exception: Fallo al crear el bean "ejb/collaxa/system/DeliveryBean"; la excepción mostrada es