Difference between revisions of "Archlinux"
(→Installing) |
|||
(72 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
+ | =Stop Tumblerd in XFCE= | ||
+ | pacman -R tumblerd | ||
+ | |||
+ | *https://miteshjlinuxtips.wordpress.com/2012/11/16/stopping-tumblerd-in-xfce/ | ||
+ | |||
+ | =Upgrading= | ||
+ | ==Intel Microcode Not Manual== | ||
+ | |||
+ | <pre> | ||
+ | /etc/grub.d/10_linux | ||
+ | |||
+ | if test -n "${initrd}" ; then | ||
+ | + if test -f "${dirname}/intel-ucode.img"; then | ||
+ | + ucode="${rel_dirname}/intel-ucode.img" | ||
+ | + else | ||
+ | + ucode= | ||
+ | + fi | ||
+ | # TRANSLATORS: ramdisk isn't identifier. Should be translated. | ||
+ | message="$(gettext_printf "Loading initial ramdisk ...")" | ||
+ | sed "s/^/$submenu_indentation/" << EOF | ||
+ | echo '$(echo "$message" | grub_quote)' | ||
+ | - initrd ${rel_dirname}/${initrd} | ||
+ | + initrd ${ucode} ${rel_dirname}/${initrd} | ||
+ | EOF | ||
+ | </pre> | ||
+ | |||
+ | *then | ||
+ | |||
+ | grub-mkconfig -o /boot/grub/grub.cfg | ||
+ | |||
+ | ==Intel Microcode== | ||
+ | |||
+ | pacman -Sv intel-ucode | ||
+ | yaourt iucode-tool | ||
+ | modprobe cpuid | ||
+ | bsdtar -Oxf /boot/intel-ucode.img | iucode_tool -tb -lS - | ||
+ | *If an update is available, it should show up below selected microcodes | ||
+ | *https://wiki.archlinux.org/index.php/Microcode#Enabling_Intel_Microcode_Updates | ||
+ | |||
+ | ==NetworkManager and CIFS fstab== | ||
+ | //192.168.1.40/bla /mnt/bla cifs credentials=/your/path/to/smbcredentials,noauto,x-systemd.automount 0 0 | ||
+ | This is the work around so the system does not try to mount before network manager brings up the interface. | ||
+ | noauto,x-systemd.automount | ||
+ | smbcredentials | ||
+ | user=theusername | ||
+ | password=thepassword | ||
+ | ==USB Automount== | ||
+ | pacman -Sv udiskie | ||
+ | add | ||
+ | udiskie & | ||
+ | to .xintrc | ||
+ | |||
+ | ===udiskie mounting in /media/=== | ||
+ | |||
+ | you add this new file in udev rules should work: | ||
+ | |||
+ | create a new file /etc/udev/rules.d/99-udisks2.rules | ||
+ | copy&paste this line and save | ||
+ | |||
+ | # UDISKS_FILESYSTEM_SHARED | ||
+ | # ==1: mount filesystem to a shared directory (/media/VolumeName) | ||
+ | # ==0: mount filesystem to a private directory (/run/media/$USER/VolumeName) | ||
+ | # See udisks(8) | ||
+ | ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{UDISKS_FILESYSTEM_SHARED}="1" | ||
+ | |||
+ | ==USB Automount Thunar-Udisks-GVFS== | ||
+ | I use Archlinux on a few of my desktop machines. I use XFCE and am for the most part satisfied. The one problem that I have with XFCe is thunar-volman and the fact that one cannot pass mount options to the devices that you mount via the GUI. Even when I set the device up for automount through thunar-volman I cannot find a place to pass my command line options. It seems that thunar-volman uses a combination of gvfs and udisks to mount the disks. | ||
+ | To fix this I tried a number of solutions autofs was my first try and for the most part seemed to work. The only problem is that it was not interacting with udisks or gvfs really. I may have been able to pass some options to the autofs mount command and get it to interact with gvfs but I did not explore that option. After quite a few people telling me that autofs was buggy and outdated anyways (I was having problems too) I decided to see if I could get thunar-volman to mount right. | ||
+ | |||
+ | I could not do it and instead of messing about with thunar-volman any more I decided just to have devmon taken out of the archlinux aur to do the automount work for me. It automounts, and I think that it was passing the options that I wanted. The instructions for using devmon are here: https://wiki.archlinux.org/index.php/Udev#Automounting_UDisks_Wrappers and the devmon site is here http://igurublog.wordpress.com/downloads/script-devmon/ | ||
+ | |||
+ | I stopped playing with devmon because it did not look like it was passing the --mount-options that I wanted. | ||
+ | |||
+ | So screw everything above. I used a combinition of udev and udisks to automount the sticks and pass the async command. | ||
+ | |||
+ | === How I did It: Mount under {{Filename|/media}}; use partition label if present === | ||
+ | |||
+ | The following udev rule set automatically mounts devices/partitions that are represented by /dev/sd* (USB drives, external hard drives and sometimes SD cards). If a partition label is available, it mounts the device to /media/<label> and otherwise to /media/usbhd-sd* (ex: /media/usbhd-sdb1): | ||
+ | {{File|/etc/udev/rules.d/11-media-by-label-auto-mount.rules|<nowiki> | ||
+ | KERNEL!="sd[a-z][0-9]", GOTO="media_by_label_auto_mount_end" | ||
+ | |||
+ | # Import FS infos | ||
+ | IMPORT{program}="/sbin/blkid -o udev -p %N" | ||
+ | |||
+ | # Get a label if present, otherwise specify one | ||
+ | ENV{ID_FS_LABEL}!="", ENV{dir_name}="%E{ID_FS_LABEL}" | ||
+ | ENV{ID_FS_LABEL}=="", ENV{dir_name}="usbhd-%k" | ||
+ | |||
+ | # Global mount options | ||
+ | ACTION=="add", ENV{mount_options}="relatime" | ||
+ | # Filesystem-specific mount options | ||
+ | ACTION=="add", ENV{ID_FS_TYPE}=="vfat|ntfs", ENV{mount_options}="$env{mount_options},utf8,gid=100,umask=002" | ||
+ | |||
+ | # Mount the device | ||
+ | ACTION=="add", RUN+="/bin/mkdir -p /media/%E{dir_name}", RUN+="/bin/mount -o $env{mount_options} /dev/%k /media/%E{dir_name}" | ||
+ | |||
+ | # Clean up after removal | ||
+ | ACTION=="remove", ENV{dir_name}!="", RUN+="/bin/umount -l /media/%E{dir_name}", RUN+="/bin/rmdir /media/%E{dir_name}" | ||
+ | |||
+ | # Exit | ||
+ | LABEL="media_by_label_auto_mount_end" | ||
+ | </nowiki>}} | ||
+ | |||
+ | The above file needs whatever options you would like to add to it. | ||
+ | |||
+ | This is my file: | ||
+ | |||
+ | <pre> | ||
+ | KERNEL!="sd[a-z][0-9]", GOTO="media_by_label_auto_mount_end" | ||
+ | |||
+ | # Import FS infos | ||
+ | IMPORT{program}="/sbin/blkid -o udev -p %N" | ||
+ | |||
+ | # Get a label if present, otherwise specify one | ||
+ | ENV{ID_FS_LABEL}!="", ENV{dir_name}="%E{ID_FS_LABEL}" | ||
+ | ENV{ID_FS_LABEL}=="", ENV{dir_name}="usbhd-%k" | ||
+ | |||
+ | # Global mount options | ||
+ | ACTION=="add", ENV{mount_options}="relatime,async" | ||
+ | # Filesystem-specific mount options | ||
+ | ACTION=="add", ENV{ID_FS_TYPE}=="vfat|ntfs", ENV{mount_options}="$env{mount_options},utf8,gid=100,umask=002,async" | ||
+ | |||
+ | # Mount the device | ||
+ | ACTION=="add", RUN+="/bin/mkdir -p /media/%E{dir_name}", RUN+="/bin/mount -o $env{mount_options},async /dev/%k /media/%E{dir_name}" | ||
+ | |||
+ | # Clean up after removal | ||
+ | ACTION=="remove", ENV{dir_name}!="", RUN+="/bin/umount -l /media/%E{dir_name}", RUN+="/bin/rmdir /media/%E{dir_name}" | ||
+ | |||
+ | # Exit | ||
+ | LABEL="media_by_label_auto_mount_end" | ||
+ | </pre> | ||
+ | |||
+ | I think I put one to many asyncs but at the moment...whatever. | ||
+ | |||
+ | You need to restart udevd with: | ||
+ | |||
+ | udevadm control --reload-rules | ||
+ | |||
+ | |||
+ | Resources: | ||
+ | *https://wiki.archlinux.org/index.php/USB_Storage_Devices#Mounting_the_USB_stick_as_normal_user_with_mount | ||
+ | *https://wiki.archlinux.org/index.php/Map_Custom_Device_Entries_with_udev#Restart_udev | ||
+ | *https://bbs.archlinux.org/viewtopic.php?pid=1014948 | ||
+ | *http://kernelnewbies.org/Linux_2_6_19#head-f01ddab8484abaf0ddea721f329b5a9499d0912e | ||
+ | *https://bbs.archlinux.org/viewtopic.php?pid=1017030 | ||
+ | *https://bbs.archlinux.org/viewtopic.php?id=112846 | ||
+ | *https://bbs.archlinux.org/viewtopic.php?pid=1017469 | ||
+ | |||
==Office 2007== | ==Office 2007== | ||
Line 27: | Line 175: | ||
{{ Note| I did not have to run via command or script like the guy does though. To execute the software I could just open it from the applicaiton menu. }} | {{ Note| I did not have to run via command or script like the guy does though. To execute the software I could just open it from the applicaiton menu. }} | ||
− | == | + | ===Office 2k7 SP2=== |
+ | |||
+ | Download from: http://www.microsoft.com/download/en/confirmation.aspx?id=5 | ||
+ | |||
+ | Install with: | ||
+ | |||
+ | WINEPREFIX=~/win32 wine office2007sp2-kb953195-fullfile-en-us.exe | ||
+ | |||
+ | ==Winetricks== | ||
The droid font downloader in winetricks is broken. The url is part of the google git project atm. Either the maintainer of winetricks will update or kernel.org will change. I just chose to remove the droid font install from the winetricks script. I think you could create a .netrc file with password information in it but I did not test it or do it this way. | The droid font downloader in winetricks is broken. The url is part of the google git project atm. Either the maintainer of winetricks will update or kernel.org will change. I just chose to remove the droid font install from the winetricks script. I think you could create a .netrc file with password information in it but I did not test it or do it this way. | ||
Line 86: | Line 242: | ||
Save then execute the command from the installation section. | Save then execute the command from the installation section. | ||
+ | |||
+ | =USB Device Automount= | ||
+ | |||
+ | autofs works but is buggy and outdated. | ||
+ | |||
+ | *http://en.wikipedia.org/wiki/GVFS | ||
+ | *http://hal.freedesktop.org/docs/udisks/Device.html#Device.FilesystemMount | ||
+ | |||
+ | =cpu usage= | ||
+ | I am having problem with Firefox and high CPU usage. Lets fix this. I have a feeling it is the flash plugin. | ||
+ | |||
+ | dstat -cdnpmgs --top-bio --top-cpu | ||
+ | |||
+ | =Installing= | ||
+ | *Configure Networking | ||
+ | *Enable Multilib? | ||
+ | |||
+ | Easy LVM: | ||
+ | <pre> | ||
+ | # using archlinux-2013.07.01-dual.iso | ||
+ | |||
+ | pacman -Syy | ||
+ | pacman -S gdisk | ||
+ | # answer y | ||
+ | gdisk /dev/sda | ||
+ | o | ||
+ | #answer y | ||
+ | n | ||
+ | # enter | ||
+ | # enter | ||
+ | +2M | ||
+ | EF02 | ||
+ | n | ||
+ | # enter | ||
+ | # enter | ||
+ | +200M | ||
+ | # enter | ||
+ | n | ||
+ | # enter | ||
+ | # enter | ||
+ | # enter | ||
+ | # enter | ||
+ | w | ||
+ | y | ||
+ | cryptsetup luksFormat /dev/sda3 | ||
+ | YES | ||
+ | # enter passphrase | ||
+ | # re-enter passphrase | ||
+ | cryptsetup luksOpen /dev/sda3 lvm | ||
+ | # enter passphrase | ||
+ | pvcreate /dev/mapper/lvm | ||
+ | vgcreate MyStorage /dev/mapper/lvm | ||
+ | lvcreate -L 7G MyStorage -n rootvol | ||
+ | lvcreate -L 500M MyStorage -n swap | ||
+ | lvcreate -l 100%FREE MyStorage -n homevol | ||
+ | mkfs.ext4 /dev/sda2 | ||
+ | mkfs.ext4 /dev/mapper/MyStorage-rootvol | ||
+ | mkfs.ext4 /dev/mapper/MyStorage-homevol | ||
+ | # ignoring swap at the moment | ||
+ | mount /dev/MyStorage/rootvol /mnt | ||
+ | mkdir /mnt/home | ||
+ | mount /dev/MyStorage/homevol /mnt/home | ||
+ | mkdir /mnt/boot | ||
+ | mount /dev/sda2 /mnt/boot | ||
+ | vi /etc/pacman.d/mirrorlist | ||
+ | /waterloo | ||
+ | yy | ||
+ | # mash page up key to the top | ||
+ | p | ||
+ | # escape key | ||
+ | :wq | ||
+ | pacstrap /mnt base nano wget linux linux-firmware base-devel man-db man-pages texinfo openssh bash-completion lvm2 | ||
+ | genfstab -U -p /mnt >> /mnt/etc/fstab | ||
+ | arch-chroot /mnt | ||
+ | vi /etc/locale.gen | ||
+ | /en_CA | ||
+ | h | ||
+ | x | ||
+ | # escape key | ||
+ | :wq | ||
+ | locale-gen | ||
+ | echo LANG=en_CA.UTF-8 > /etc/locale.conf | ||
+ | export LANG=en_CA.UTF-8 | ||
+ | ln -s /usr/share/zoneinfo/Canada/Eastern /etc/localtime | ||
+ | hwclock --systohc --utc | ||
+ | echo arch > /etc/hostname | ||
+ | ip addr | ||
+ | # note the network device, in my case it is "enp0s3", it is often "eth0" it is not "lo" | ||
+ | systemctl enable dhcpcd@enp0s3.service # enp0s3 from above | ||
+ | vi /etc/mkinitcpio.conf #make sure this didn't delete the S off HOOKS | ||
+ | /^HOOKS | ||
+ | /filesystems | ||
+ | h | ||
+ | i | ||
+ | #spcae | ||
+ | keymap encrypt lvm2 | ||
+ | #escape key | ||
+ | :wq | ||
+ | pacman -S grub | ||
+ | y | ||
+ | vi /etc/default/grub | ||
+ | /GRUB_CMDLINE_LINUX="" | ||
+ | $ | ||
+ | i | ||
+ | cryptdevice=/dev/sda3:MyStorage | ||
+ | # escape key | ||
+ | :wq | ||
+ | grub-install --target=i386-pc --recheck /dev/sda | ||
+ | |||
+ | This basic install script does not cover efi installs | ||
+ | |||
+ | mkinitcpio -p linux | ||
+ | grub-mkconfig -o /boot/grub/grub.cfg | ||
+ | # bunch of warnings about lvmetad, but, I shall ignore | ||
+ | passwd | ||
+ | # enter password | ||
+ | # re-enter password | ||
+ | exit | ||
+ | umount /mnt/home /mnt/boot /mnt | ||
+ | </pre> | ||
+ | Make sure to do networking: | ||
+ | <pre> | ||
+ | /etc/systemd/network/20-wired.network | ||
+ | |||
+ | [Match] | ||
+ | Name=enp1s0 | ||
+ | |||
+ | [Network] | ||
+ | DHCP=yes | ||
+ | </pre> | ||
+ | |||
+ | <pre> | ||
+ | reboot | ||
+ | </pre> | ||
+ | |||
+ | ==Enable Swap== | ||
+ | mkswap /dev/mapper/MyStorage-swap | ||
+ | swapon /dev/mapper/MyStorage-swap | ||
+ | Edit fstab: | ||
+ | nano /etc/fstab | ||
+ | # /dev/mapper/MyStorage-swap | ||
+ | UUID=32b094e3-e8de-113e-9dw6-72b99d31dd54 swap swap defaults 0 0 | ||
+ | |||
+ | ===Enable Swap/Get UUID=== | ||
+ | sudo blkid | ||
+ | |||
+ | ==Saved Links== | ||
+ | *https://wiki.archlinux.org/index.php/Users_and_Groups | ||
+ | *https://wiki.archlinux.org/index.php/Xorg | ||
+ | *https://wiki.archlinux.org/index.php/Beginners%27_Guide#Mount_the_partitions | ||
+ | *http://suddenkernelpanic.blogspot.de/2013/03/arch-linux-lvm-on-top-of-luks-2013-style.html | ||
+ | *https://bbs.archlinux.org/viewtopic.php?id=166876 | ||
+ | *https://wiki.archlinux.org/index.php/Network_Configuration#Device_names | ||
+ | *https://wiki.archlinux.org/index.php/Beginners%27_Guide#Mount_the_partitions | ||
+ | *https://wiki.archlinux.org/index.php/Grub#GUID_Partition_Table_.28GPT.29_specific_instructions | ||
+ | *https://wiki.archlinux.org/index.php/Dm-crypt_with_LUKS#Initial_Setup | ||
+ | *https://wiki.archlinux.org/index.php/Partitioning | ||
+ | *https://wiki.archlinux.org/index.php/Installation_Guide | ||
+ | |||
+ | =Installing with Intel Fake Raid (MDADM)= | ||
+ | |||
+ | https://wiki.archlinux.org/index.php/Beginners'_guide#Preparation | ||
+ | |||
+ | at the time: 2015.09.01 iso | ||
+ | |||
+ | All I have done so far was get dhcp running, passwd root, and enabled sshd as I am installing over the network. | ||
+ | |||
+ | On to install: | ||
+ | |||
+ | Looks like it loaded mdadm <ref>https://forums.gentoo.org/viewtopic-t-888520-start-0.html</ref> | ||
+ | ls /dev/md | ||
+ | imsm0 ZERO_0 | ||
+ | Lets see more: | ||
+ | |||
+ | |||
+ | # mdadm --detail-platform | ||
+ | |||
+ | Platform : Intel(R) Matrix Storage Manager | ||
+ | Version : 5.6.2.1002 | ||
+ | RAID Levels : raid0 raid1 raid10 raid5 | ||
+ | Chunk Sizes : 4k 8k 16k 32k 64k 128k | ||
+ | 2TB volumes : not supported | ||
+ | 2TB disks : not supported | ||
+ | Max Disks : 4 | ||
+ | Max Volumes : 2 per array, 4 per controller | ||
+ | I/O Controller : /sys/devices/pci0000:00/0000:00:1f.2 (SATA) | ||
+ | |||
+ | Read the next paragraph first please. | ||
+ | |||
+ | mdadm should locate the array and create /dev/md/* entries. If it doesn't do this automatically: | ||
+ | mdadm --assemble --scan | ||
+ | I did not find anything here so lets assemble the array inside the container: | ||
+ | mdadm -I /dev/md/imsm0 | ||
+ | cat /proc/mdstat | ||
+ | I saw that the array was in auto-read-only and wondered what the heck was going on so I looked<ref>https://unix.stackexchange.com/questions/101072/new-md-array-is-auto-read-only-and-has-resync-pending</ref> and found that when created, before the first write, that just how they are. | ||
+ | ls -l /dev/md/ | ||
+ | |||
+ | So, I bumbled through above, to be honest with you, I do not think any of it matters except possible the command with the -I<ref>https://serverfault.com/questions/226053/intel-matrix-storage-raid-and-linux-mdadm</ref> in it. I do not think that even that matters because it looks like after looking at dmesg the array was found and assembled/reconized at boot. The intel raid utility must have wrote the meta data and such. But just in case I was wrong, I left the above. | ||
+ | |||
+ | SO IT LOOKS LIKE YOU CAN START HERE: | ||
+ | |||
+ | mdadm --detail --scan | ||
+ | |||
+ | parted /dev/md/ZERO_O | ||
+ | ZERO_0 is my named array inside the imsm0 container<ref>https://serverfault.com/questions/226053/intel-matrix-storage-raid-and-linux-mdadm</ref> so hmm: | ||
+ | fdisk -l /dev/md/ZERO_0 | ||
+ | Lets get to partitioning...they say not to partition entire arrays and instead create partitions and assemble them separately but I am not going to do that with intel fake raid. | ||
+ | |||
+ | ==MBR Install== | ||
+ | |||
+ | Doing MBR because my bios does not support EFI, I ran into trouble with HYBRID/GPT, and my disks are only 20GB. | ||
+ | |||
+ | parted /dev/md/ZERO_0 | ||
+ | mklabel msdos | ||
+ | mkpart primary ext4 1MiB 100MiB | ||
+ | set 1 boot on | ||
+ | mkpart primary ext4 100MiB 16.5GiB | ||
+ | mkpart primary linux-swap 16.5GiB 100% | ||
+ | Just to see changes: | ||
+ | fdisk -l /dev/md/ZERO_0 | ||
+ | |||
+ | Create Filesystem/swap/activate swap | ||
+ | mkfs.ext4 /dev/md/ZERO_0p1 | ||
+ | mkfs.ext4 /dev/md/ZERO_0p2 | ||
+ | mkswap /dev/md/ZERO_0p3 | ||
+ | swapon /dev/md/ZERO_0p3 | ||
+ | mount /dev/md/ZERO_0p2 /mnt | ||
+ | mkdir -p /mnt/boot | ||
+ | mount /dev/md/ZERO_0p1 /mnt/boot/ | ||
+ | nano /etc/pacman.conf | ||
+ | Uncomment multilib on x64 | ||
+ | pacstrap -i /mnt base base-devel | ||
+ | genfstab -U /mnt > /mnt/etc/fstab | ||
+ | cat /mnt/etc/fstab | ||
+ | nano /mnt/etc/fstab | ||
+ | replace UUIDs with: | ||
+ | /dev/md/ZERO_0p1 | ||
+ | /dev/md/ZERO_0p2 | ||
+ | /dev/md/ZERO_0p3 | ||
+ | mdadm --detail --scan >> /mnt/etc/mdadm.conf | ||
+ | Chroot in for config | ||
+ | arch-chroot /mnt /bin/bash | ||
+ | nano /etc/locale.gen | ||
+ | en_US.UTF-8 UTF-8 | ||
+ | nano /etc/locale.conf | ||
+ | LANG=en_US.UTF-8 | ||
+ | tzselect | ||
+ | ln -sf /usr/share/zoneinfo/America/Chicago /etc/localtime | ||
+ | |||
+ | work on some grub stuff | ||
+ | |||
+ | pacman -Sv grub | ||
+ | nano /etc/default/grub | ||
+ | *Uncomment GRUB_DISABLE_LINUX_UUID=true | ||
+ | #IGNORE LINE HAS TO DO WITH OLD GRUB *Add mdraid to GRUB_PRELOAD_MODULES | ||
+ | #IGNORE LINE HAS TO DO WITH OLD GRUB GRUB_PRELOAD_MODULES="part_gpt part_msdos mdraid" | ||
+ | Lets finish | ||
+ | |||
+ | Raid Stuff | ||
+ | |||
+ | cat /etc/mdadm.conf | ||
+ | nano /etc/mkinitcpio.conf | ||
+ | Add mdadm_udev to HOOKS= | ||
+ | HOOKS="base udev autodetect modconf block mdadm_udev filesystems keyboard fsck" | ||
+ | Add /sbin/mdmon to BINARIES<ref>https://bbs.archlinux.org/viewtopic.php?id=137058</ref> | ||
+ | BINARIES="/sbin/mdmon" | ||
+ | Regenerate it! | ||
+ | mkinitcpio -p linux | ||
+ | |||
+ | grub-install --recheck /dev/md/ZERO_0 | ||
+ | grub-mkconfig -o /boot/grub/grub.cfg | ||
+ | |||
+ | cat /boot/grub/grub.cfg | ||
+ | |||
+ | echo your-hostname > /etc/hostname | ||
+ | nano /etc/hosts | ||
+ | systemctl enable dhcpcd@enp13s0.service | ||
+ | exit | ||
+ | umount -R /mnt | ||
+ | reboot | ||
+ | Remove Disk | ||
+ | |||
+ | ==HYBRID MBR/GPT== | ||
+ | In the end I did not do this, I could not get it to work because I did not have my raid array as bootable so I messed alot up trying to fix something that was not broken. I am keeping this here because I may try it again someday. For now I am doing the MBR method because my disks are only 20GB anyways. | ||
+ | |||
+ | So you have a few options here. I am not using large disks here but I am going with the MBR/GPT hybrid because, well, because. You could do I would think GPT, MBR, or MBR Hybrid.<ref>https://wiki.archlinux.org/index.php/GUID_Partition_Table#gdisk_basic_.28with_hybrid_MBR.29</ref> | ||
+ | |||
+ | gdisk /dev/md/ZERO_0 | ||
+ | |||
+ | Example from archlinux wiki: | ||
+ | <pre> | ||
+ | # gdisk /dev/sdX | ||
+ | o # create new empty GUID partition table | ||
+ | n # partition 1 [enter], from beginning [enter], to 100GiB [+100GiB], linux fs type [enter] | ||
+ | n # partition 2 [enter], from beginning [enter], to 108GiB [+8GiB], linux swap [8200] | ||
+ | n # partition 3 [enter], from beginning [enter], [+1MiB], linux fs type [enter] | ||
+ | r # recovery/transformation menu | ||
+ | h # make hybrid mbr | ||
+ | 3 # add partition 3 to hybrid mbr | ||
+ | Place EFI GPT (0xEE) partition first in MBR (good for GRUB)? (Y/N): N | ||
+ | Enter an MBR hex code (default 83): [enter] | ||
+ | Set the bootable flag? (Y/N): Y | ||
+ | Unused partition space(s) found. Use one to protect more partitions? (Y/N): N | ||
+ | w # write table to disk and exit | ||
+ | </pre> | ||
+ | <pre> | ||
+ | v | ||
+ | This will give you total disk size.... | ||
+ | No problems found. 39063485 free sectors (18.6 GiB) available in 1 | ||
+ | segments, the largest of which is 39063485 (18.6 GiB) in size. | ||
+ | n | ||
+ | 1 | ||
+ | [enter] | ||
+ | Start at beginning | ||
+ | [enter] | ||
+ | +16GiB | ||
+ | [enter] | ||
+ | [enter] | ||
+ | n | ||
+ | [enter] | ||
+ | [enter] | ||
+ | +2GiB | ||
+ | [enter] | ||
+ | 8200 | ||
+ | [enter] | ||
+ | n | ||
+ | [enter] | ||
+ | [enter] | ||
+ | +1MiB | ||
+ | [enter] | ||
+ | [enter] | ||
+ | r | ||
+ | [enter] | ||
+ | h | ||
+ | [enter] | ||
+ | 3 | ||
+ | [enter] | ||
+ | N | ||
+ | [enter] | ||
+ | [enter] | ||
+ | Y | ||
+ | [enter] | ||
+ | N | ||
+ | [enter] | ||
+ | w | ||
+ | [enter] | ||
+ | Y | ||
+ | [enter] | ||
+ | </pre> | ||
+ | |||
+ | # DO NOT READ THISSo above, gdisk has an option to add the right flag [0xEF02] to a partition so the bios will find it but someone stated that gdisk lies or was broken. Anyways, I did not do it at first and my system failed to boot. Instead of using the Gdisk way <ref>https://wiki.gentoo.org/wiki/GRUB2</ref> I used parted<ref>https://velenux.wordpress.com/2012/07/12/grub-failing-to-install-on-debianubuntu-with-gpt-partitions/</ref> because I did not read anything about that. | ||
+ | |||
+ | # DO NOT DO THIS | ||
+ | |||
+ | parted /dev/md/ZERO_0 | ||
+ | p free [enter] | ||
+ | set 3 bios_grub on | ||
+ | Ignore | ||
+ | q | ||
+ | |||
+ | # DO NOT DO THIS | ||
+ | |||
+ | Just to see changes: | ||
+ | gdisk /dev/md/ZERO_0 | ||
+ | p[enter] | ||
+ | Create Filesystem/swap/activate swap | ||
+ | mkfs.ext4 /dev/md/ZERO_0p1 | ||
+ | mkswap /dev/md/ZERO_0p2 | ||
+ | swapon /dev/md/ZERO_0p2 | ||
+ | mount /dev/md/ZERO_0p1 /mnt | ||
+ | nano /etc/pacman.conf | ||
+ | Uncomment multilib on x64 | ||
+ | pacstrap -i /mnt base base-devel | ||
+ | genfstab -U /mnt > /mnt/etc/fstab | ||
+ | arch-chroot /mnt /bin/bash | ||
+ | nano /etc/locale.gen | ||
+ | en_US.UTF-8 UTF-8 | ||
+ | nano /etc/locale.conf | ||
+ | LANG=en_US.UTF-8 | ||
+ | tzselect | ||
+ | ln -sf /usr/share/zoneinfo/America/Chicago /etc/localtime | ||
+ | |||
+ | |||
+ | Raid Stuff | ||
+ | mdadm --detail --scan >> /etc/mdadm.conf | ||
+ | nano /etc/mkinitcpio.conf | ||
+ | Add mdadm to HOOKS= | ||
+ | HOOKS="base udev mdadm autodetect modconf block filesystems keyboard fsck" | ||
+ | mkinitcpio -p linux | ||
+ | |||
+ | Grub Install with Hybrid GPT<ref>https://wiki.archlinux.org/index.php/GRUB#GUID_Partition_Table_.28GPT.29_specific_instructions</ref>A better reference: https://wiki.gentoo.org/wiki/Hybrid_partition_table | ||
+ | |||
+ | # pacman -Sv grub | ||
+ | # grub-install --recheck /dev/md/ZERO_0 | ||
+ | # grub-mkconfig -o /boot/grub/grub.cfg | ||
+ | echo your-hostname > /etc/hostname | ||
+ | nano /etc/hosts | ||
+ | systemctl enable dhcpcd@enp13s0.service | ||
+ | |||
+ | =Rescue= | ||
+ | |||
+ | fsck /dev/your\ drive | ||
+ | mount /dev/your\ drive /mnt/somewhere | ||
+ | mount /dev/bootpart\ /mnt/somewhere/boot | ||
+ | mount /dev /mnt/somewhere/dev -o bind | ||
+ | mount /proc /mnt/somewhere/proc -o bind | ||
+ | mount /sys /mnt/somewhere/sys -o bind | ||
+ | [... connect to the internet by your preffered method ...] | ||
+ | cp /etc/resolv.conf /mnt/somewhere/etc | ||
+ | chroot /mnt/somewhere /bin/bash | ||
+ | cat /proc/mounts | grep -v rootfs > /etc/mtab | ||
+ | [... and setup grub and check your system ...] | ||
+ | |||
+ | =Yourt Build Dir Space Out= | ||
+ | |||
+ | /etc/makepkg.conf: | ||
+ | |||
+ | #-- Specify a directory for package building. | ||
+ | #BUILDDIR=/tmp/makepkg | ||
+ | |||
+ | If you're using yaourt, you can tell it to build somewhere else, use --tmp commandline switch or edit /etc/yaourtrc, uncomment and change | ||
+ | |||
+ | #TMPDIR="/tmp" | ||
+ | |||
+ | to somewhere else. | ||
+ | |||
+ | =Post Install= | ||
+ | useradd -m -G wheel -s /bin/bash user | ||
+ | #crap pacman -Sv udisks2 ntfs-3g | ||
+ | #crap pacman -Sv inotify-tools | ||
+ | #crap nano /etc/udev/rules.d/99-udisks2.rules | ||
+ | locale-gen en_US en_US.UTF-8 | ||
+ | pacman -Sv devmon | ||
+ | systemctl enable devmon@user.service | ||
+ | systemctl start devmon@user.service | ||
+ | |||
+ | |||
+ | =Clearing Failed Units= | ||
+ | http://linux-audit.com/auditing-systemd-solving-failed-units-with-systemctl/ | ||
+ | |||
+ | =DHCP Service Increasing Timeout= | ||
+ | |||
+ | su | ||
+ | mkdir | ||
+ | /etc/systemd/system/dhcpcd@.service.d | ||
+ | nano /etc/systemd/system/dhcpcd@.service.d/timeout.conf | ||
+ | File: | ||
+ | <pre> | ||
+ | [Service] | ||
+ | ExecStart= | ||
+ | ExecStart=/usr/bin/dhcpcd -w -q -t 0 %I | ||
+ | </pre> | ||
+ | Where -t 0 is infinite wait | ||
+ | nano /etc/systemd/system/dhcpcd@.service.d/dhcpcdrestart.conf | ||
+ | File: | ||
+ | <pre> | ||
+ | [Service] | ||
+ | Restart=always | ||
+ | </pre> | ||
+ | |||
+ | =Bring Network Interface Up With No IP= | ||
+ | |||
+ | About the other interface: | ||
+ | |||
+ | Right now I do a systemctl enable dhcpcd@enp14s0.service to dhcp that interface...I need the other interface to come up with nothing | ||
+ | |||
+ | It will work but it is reccomended to use networkd for all: | ||
+ | |||
+ | 14:38 < vodik> webdawg: no, but networkd has a lighter dhcp implementation, you can use that | ||
+ | 14:38 < vodik> webdawg: [Match] Name=differentinterface [Network] DHCP=yes | ||
+ | |||
+ | About the interface I want to turn up on each boot: | ||
+ | |||
+ | *https://wiki.archlinux.org/index.php/Systemd-networkd#Wired_adapter_using_DHCP | ||
+ | |||
+ | 14:35 < vodik> webdawg: networkd can do it | ||
+ | 14:35 < vodik> webdawg: [Match] Name=... [Network] | ||
+ | 14:35 < vodik> webdawg: if you have an empty [Network] section, networkd will bring the interface up but leave it unconfigured | ||
+ | |||
+ | cd /etc/systemd/network/ | ||
+ | sudo nano enp13s0.network | ||
+ | File: | ||
+ | [Match] | ||
+ | Name=enp13s0 | ||
+ | [Network] | ||
+ | |||
+ | The archlinux doc above says to enable two services: | ||
+ | |||
+ | sudo systemctl enable systemd-networkd.service | ||
+ | sudo systemctl enable systemd-resolved.service | ||
+ | |||
+ | Since I am going to still use the dhcpcd I am not going to enable resolved.service | ||
+ | |||
+ | =udiskie= | ||
+ | |||
+ | udiskie is a mount helper using either |udisks or udisks2 It includes support for password protected LUKS devices. See the udiskie wiki for [https://github.com/coldfix/udiskie/wiki/Usage usage details]. | ||
+ | |||
+ | Github: [https://github.com/coldfix/udiskie udiskie] | ||
+ | |||
+ | ==udiskie - xfce== | ||
+ | pacman -Sv xfce4-notifyd notify-osd udiskie | ||
+ | cp /etc/X11/xinit/xinitrc .xinitrc | ||
+ | nano .xinitrc | ||
+ | Add to bottom (you will not need to do this if you have your .xinitrc done right): | ||
+ | source /etc/X11/xinit/xinitrc.d/50-systemd-user.sh | ||
+ | udiskie & | ||
+ | Log out | ||
+ | startx | ||
+ | Run to test: | ||
+ | xfce4-notifyd-config | ||
+ | |||
+ | =NetworkManager= | ||
+ | |||
+ | sudo pacman -Sv networkmanager networkmanager-openvpn network-manager-applet xfce4-notifyd | ||
+ | *Should the applet not appear, install the xfce4-indicator-plugin AUR | ||
+ | |||
+ | You have to disable any conflicting services: | ||
+ | dhcpcd@.service | ||
+ | and/or | ||
+ | netctl list | ||
+ | |||
+ | ==Network Manager Password Prompt== | ||
+ | |||
+ | No prompt for password of secured Wi-Fi networks: When trying to connect to a secured Wi-Fi network, no prompt for a password is shown and no connection is established. This happens when no keyring package is installed. An easy solution is to install gnome-keyring. If you want the passwords to be stored in encrypted form, follow GNOME Keyring to set up the gnome-keyring-daemon. | ||
+ | |||
+ | pacman -Sv gnome-keyring | ||
+ | |||
+ | I have not configured but it looks like it prompts now, will have to see how it works later. | ||
+ | |||
+ | =Reccomended Packages= | ||
+ | base-devel git | ||
+ | |||
+ | =References= | ||
+ | <references /> |
Latest revision as of 06:26, 12 August 2020
Contents
- 1 Stop Tumblerd in XFCE
- 2 Upgrading
- 3 USB Device Automount
- 4 cpu usage
- 5 Installing
- 6 Installing with Intel Fake Raid (MDADM)
- 7 Rescue
- 8 Yourt Build Dir Space Out
- 9 Post Install
- 10 Clearing Failed Units
- 11 DHCP Service Increasing Timeout
- 12 Bring Network Interface Up With No IP
- 13 udiskie
- 14 NetworkManager
- 15 Reccomended Packages
- 16 References
Stop Tumblerd in XFCE
pacman -R tumblerd
Upgrading
Intel Microcode Not Manual
/etc/grub.d/10_linux if test -n "${initrd}" ; then + if test -f "${dirname}/intel-ucode.img"; then + ucode="${rel_dirname}/intel-ucode.img" + else + ucode= + fi # TRANSLATORS: ramdisk isn't identifier. Should be translated. message="$(gettext_printf "Loading initial ramdisk ...")" sed "s/^/$submenu_indentation/" << EOF echo '$(echo "$message" | grub_quote)' - initrd ${rel_dirname}/${initrd} + initrd ${ucode} ${rel_dirname}/${initrd} EOF
- then
grub-mkconfig -o /boot/grub/grub.cfg
Intel Microcode
pacman -Sv intel-ucode yaourt iucode-tool modprobe cpuid bsdtar -Oxf /boot/intel-ucode.img | iucode_tool -tb -lS -
- If an update is available, it should show up below selected microcodes
- https://wiki.archlinux.org/index.php/Microcode#Enabling_Intel_Microcode_Updates
NetworkManager and CIFS fstab
//192.168.1.40/bla /mnt/bla cifs credentials=/your/path/to/smbcredentials,noauto,x-systemd.automount 0 0
This is the work around so the system does not try to mount before network manager brings up the interface.
noauto,x-systemd.automount
smbcredentials
user=theusername password=thepassword
USB Automount
pacman -Sv udiskie
add
udiskie &
to .xintrc
udiskie mounting in /media/
you add this new file in udev rules should work:
create a new file /etc/udev/rules.d/99-udisks2.rules copy&paste this line and save
# UDISKS_FILESYSTEM_SHARED # ==1: mount filesystem to a shared directory (/media/VolumeName) # ==0: mount filesystem to a private directory (/run/media/$USER/VolumeName) # See udisks(8) ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{UDISKS_FILESYSTEM_SHARED}="1"
USB Automount Thunar-Udisks-GVFS
I use Archlinux on a few of my desktop machines. I use XFCE and am for the most part satisfied. The one problem that I have with XFCe is thunar-volman and the fact that one cannot pass mount options to the devices that you mount via the GUI. Even when I set the device up for automount through thunar-volman I cannot find a place to pass my command line options. It seems that thunar-volman uses a combination of gvfs and udisks to mount the disks. To fix this I tried a number of solutions autofs was my first try and for the most part seemed to work. The only problem is that it was not interacting with udisks or gvfs really. I may have been able to pass some options to the autofs mount command and get it to interact with gvfs but I did not explore that option. After quite a few people telling me that autofs was buggy and outdated anyways (I was having problems too) I decided to see if I could get thunar-volman to mount right.
I could not do it and instead of messing about with thunar-volman any more I decided just to have devmon taken out of the archlinux aur to do the automount work for me. It automounts, and I think that it was passing the options that I wanted. The instructions for using devmon are here: https://wiki.archlinux.org/index.php/Udev#Automounting_UDisks_Wrappers and the devmon site is here http://igurublog.wordpress.com/downloads/script-devmon/
I stopped playing with devmon because it did not look like it was passing the --mount-options that I wanted.
So screw everything above. I used a combinition of udev and udisks to automount the sticks and pass the async command.
How I did It: Mount under /media; use partition label if present
The following udev rule set automatically mounts devices/partitions that are represented by /dev/sd* (USB drives, external hard drives and sometimes SD cards). If a partition label is available, it mounts the device to /media/<label> and otherwise to /media/usbhd-sd* (ex: /media/usbhd-sdb1):
/etc/udev/rules.d/11-media-by-label-auto-mount.rules
KERNEL!="sd[a-z][0-9]", GOTO="media_by_label_auto_mount_end" # Import FS infos IMPORT{program}="/sbin/blkid -o udev -p %N" # Get a label if present, otherwise specify one ENV{ID_FS_LABEL}!="", ENV{dir_name}="%E{ID_FS_LABEL}" ENV{ID_FS_LABEL}=="", ENV{dir_name}="usbhd-%k" # Global mount options ACTION=="add", ENV{mount_options}="relatime" # Filesystem-specific mount options ACTION=="add", ENV{ID_FS_TYPE}=="vfat|ntfs", ENV{mount_options}="$env{mount_options},utf8,gid=100,umask=002" # Mount the device ACTION=="add", RUN+="/bin/mkdir -p /media/%E{dir_name}", RUN+="/bin/mount -o $env{mount_options} /dev/%k /media/%E{dir_name}" # Clean up after removal ACTION=="remove", ENV{dir_name}!="", RUN+="/bin/umount -l /media/%E{dir_name}", RUN+="/bin/rmdir /media/%E{dir_name}" # Exit LABEL="media_by_label_auto_mount_end"
The above file needs whatever options you would like to add to it.
This is my file:
KERNEL!="sd[a-z][0-9]", GOTO="media_by_label_auto_mount_end" # Import FS infos IMPORT{program}="/sbin/blkid -o udev -p %N" # Get a label if present, otherwise specify one ENV{ID_FS_LABEL}!="", ENV{dir_name}="%E{ID_FS_LABEL}" ENV{ID_FS_LABEL}=="", ENV{dir_name}="usbhd-%k" # Global mount options ACTION=="add", ENV{mount_options}="relatime,async" # Filesystem-specific mount options ACTION=="add", ENV{ID_FS_TYPE}=="vfat|ntfs", ENV{mount_options}="$env{mount_options},utf8,gid=100,umask=002,async" # Mount the device ACTION=="add", RUN+="/bin/mkdir -p /media/%E{dir_name}", RUN+="/bin/mount -o $env{mount_options},async /dev/%k /media/%E{dir_name}" # Clean up after removal ACTION=="remove", ENV{dir_name}!="", RUN+="/bin/umount -l /media/%E{dir_name}", RUN+="/bin/rmdir /media/%E{dir_name}" # Exit LABEL="media_by_label_auto_mount_end"
I think I put one to many asyncs but at the moment...whatever.
You need to restart udevd with:
udevadm control --reload-rules
Resources:
- https://wiki.archlinux.org/index.php/USB_Storage_Devices#Mounting_the_USB_stick_as_normal_user_with_mount
- https://wiki.archlinux.org/index.php/Map_Custom_Device_Entries_with_udev#Restart_udev
- https://bbs.archlinux.org/viewtopic.php?pid=1014948
- http://kernelnewbies.org/Linux_2_6_19#head-f01ddab8484abaf0ddea721f329b5a9499d0912e
- https://bbs.archlinux.org/viewtopic.php?pid=1017030
- https://bbs.archlinux.org/viewtopic.php?id=112846
- https://bbs.archlinux.org/viewtopic.php?pid=1017469
Office 2007
Install
(10.25.11)
This works great:
From forum post: https://bbs.archlinux.org/viewtopic.php?id=86436
...to get office 2007 working for me I installed bin32-wine, winetricks and then ran:
$ WINEARCH=win32 WINEPREFIX=~/win32 winecfg and set windows to xp and then ran:
$ WINEPREFIX=~/win32 winetricks msxml3 gdiplus riched20 riched30 vcrun2005sp1 allfonts $ WINEPREFIX=~/win32 wine setup.exe and then to actually use any of the executables you must cd to the directory. IE: $ cd ~/win32/drive_c/Program Files/Microsoft Office/Office12 $ WINEPREFIX=~/win32 wine ./EXCEL.EXE
You could set WINEPREFIX in your bash_profile, or make 32bit wine your default (then you only have to do WINEARCH=win32 winecfg). Anyway the two main problems I had were accidentally emulating 64bit (I know Wine Is Not Emulation) windows instead of 32 bit. Also I found that the programs hang if I didn't cd into the directory, probably because the dlls are linked with the local directory. Anyway everything works this way.
Office 2k7 SP2
Download from: http://www.microsoft.com/download/en/confirmation.aspx?id=5
Install with:
WINEPREFIX=~/win32 wine office2007sp2-kb953195-fullfile-en-us.exe
Winetricks
The droid font downloader in winetricks is broken. The url is part of the google git project atm. Either the maintainer of winetricks will update or kernel.org will change. I just chose to remove the droid font install from the winetricks script. I think you could create a .netrc file with password information in it but I did not test it or do it this way.
If you visit: http://android.git.kernel.org/?p=platform/frameworks/base.git;a=blob_plain;f=data/fonts/ and generate a password in a webbrowser then put it in ~/.netrc , then run the script without comments...might work.
This is what I did:
sudo nano -w /usr/bin/winetricks
Search for: do_droid You should see this:
do_droid() { w_download ${DROID_URL}$1';hb=HEAD' $3 $1 w_try cp -f "$W_CACHE"/droid/$1 "$W_FONTSDIR_UNIX" w_register_font $1 "$2" }
load_droid() { # See http://en.wikipedia.org/wiki/Droid_(font) DROID_URL='http://android.git.kernel.org/?p=platform/frameworks/base.git;a=blob_plain;f=data/fonts/' do_droid DroidSans-Bold.ttf "Droid Sans Bold" 560e4bcafdebaf29645fbf92633a2ae0d2f9801f do_droid DroidSansFallback.ttf "Droid Sans Fallback" 64de2fde75868ab8d4c6714add08c8f08b3fae1e do_droid DroidSansJapanese.ttf "Droid Sans Japanese" b3a248c11692aa88a30eb25df425b8910fe05dc5 do_droid DroidSansMono.ttf "Droid Sans Mono" 133fb6cf26ea073b456fb557b94ce8c46143b117 do_droid DroidSans.ttf "Droid Sans" 62f2841f61e4be66a0303cd1567ed2d300b4e31c do_droid DroidSerif-BoldItalic.ttf "Droid Serif Bold Italic" b7f2d37c3a062be671774ff52f4fd95cbef813ce do_droid DroidSerif-Bold.ttf "Droid Serif Bold" 294fa99ceaf6077ab633b5a7c7db761e2f76cf8c do_droid DroidSerif-Italic.ttf "Droid Serif Italic" bdd8aad5e6ac546d11e7378bdfabeac7ccbdadfc do_droid DroidSerif-Regular.ttf "Droid Serif" 805c5f975e02f488fa1dd1dd0d44ed4f93b0fab4 }
Comment it out with:
#do_droid() { # w_download ${DROID_URL}$1';hb=HEAD' $3 $1 # w_try cp -f "$W_CACHE"/droid/$1 "$W_FONTSDIR_UNIX" # w_register_font $1 "$2" #}
#load_droid() #{ # # See http://en.wikipedia.org/wiki/Droid_(font) # DROID_URL='http://android.git.kernel.org/?p=platform/frameworks/base.git;a=blob_plain;f=data/fonts/' # # do_droid DroidSans-Bold.ttf "Droid Sans Bold" 560e4bcafdebaf29645fbf92633a2ae0d2f9801f # do_droid DroidSansFallback.ttf "Droid Sans Fallback" 64de2fde75868ab8d4c6714add08c8f08b3fae1e # do_droid DroidSansJapanese.ttf "Droid Sans Japanese" b3a248c11692aa88a30eb25df425b8910fe05dc5 # do_droid DroidSansMono.ttf "Droid Sans Mono" 133fb6cf26ea073b456fb557b94ce8c46143b117 # do_droid DroidSans.ttf "Droid Sans" 62f2841f61e4be66a0303cd1567ed2d300b4e31c # do_droid DroidSerif-BoldItalic.ttf "Droid Serif Bold Italic" b7f2d37c3a062be671774ff52f4fd95cbef813ce # do_droid DroidSerif-Bold.ttf "Droid Serif Bold" 294fa99ceaf6077ab633b5a7c7db761e2f76cf8c # do_droid DroidSerif-Italic.ttf "Droid Serif Italic" bdd8aad5e6ac546d11e7378bdfabeac7ccbdadfc # do_droid DroidSerif-Regular.ttf "Droid Serif" 805c5f975e02f488fa1dd1dd0d44ed4f93b0fab4 #}
Save then execute the command from the installation section.
USB Device Automount
autofs works but is buggy and outdated.
- http://en.wikipedia.org/wiki/GVFS
- http://hal.freedesktop.org/docs/udisks/Device.html#Device.FilesystemMount
cpu usage
I am having problem with Firefox and high CPU usage. Lets fix this. I have a feeling it is the flash plugin.
dstat -cdnpmgs --top-bio --top-cpu
Installing
- Configure Networking
- Enable Multilib?
Easy LVM:
# using archlinux-2013.07.01-dual.iso pacman -Syy pacman -S gdisk # answer y gdisk /dev/sda o #answer y n # enter # enter +2M EF02 n # enter # enter +200M # enter n # enter # enter # enter # enter w y cryptsetup luksFormat /dev/sda3 YES # enter passphrase # re-enter passphrase cryptsetup luksOpen /dev/sda3 lvm # enter passphrase pvcreate /dev/mapper/lvm vgcreate MyStorage /dev/mapper/lvm lvcreate -L 7G MyStorage -n rootvol lvcreate -L 500M MyStorage -n swap lvcreate -l 100%FREE MyStorage -n homevol mkfs.ext4 /dev/sda2 mkfs.ext4 /dev/mapper/MyStorage-rootvol mkfs.ext4 /dev/mapper/MyStorage-homevol # ignoring swap at the moment mount /dev/MyStorage/rootvol /mnt mkdir /mnt/home mount /dev/MyStorage/homevol /mnt/home mkdir /mnt/boot mount /dev/sda2 /mnt/boot vi /etc/pacman.d/mirrorlist /waterloo yy # mash page up key to the top p # escape key :wq pacstrap /mnt base nano wget linux linux-firmware base-devel man-db man-pages texinfo openssh bash-completion lvm2 genfstab -U -p /mnt >> /mnt/etc/fstab arch-chroot /mnt vi /etc/locale.gen /en_CA h x # escape key :wq locale-gen echo LANG=en_CA.UTF-8 > /etc/locale.conf export LANG=en_CA.UTF-8 ln -s /usr/share/zoneinfo/Canada/Eastern /etc/localtime hwclock --systohc --utc echo arch > /etc/hostname ip addr # note the network device, in my case it is "enp0s3", it is often "eth0" it is not "lo" systemctl enable dhcpcd@enp0s3.service # enp0s3 from above vi /etc/mkinitcpio.conf #make sure this didn't delete the S off HOOKS /^HOOKS /filesystems h i #spcae keymap encrypt lvm2 #escape key :wq pacman -S grub y vi /etc/default/grub /GRUB_CMDLINE_LINUX="" $ i cryptdevice=/dev/sda3:MyStorage # escape key :wq grub-install --target=i386-pc --recheck /dev/sda This basic install script does not cover efi installs mkinitcpio -p linux grub-mkconfig -o /boot/grub/grub.cfg # bunch of warnings about lvmetad, but, I shall ignore passwd # enter password # re-enter password exit umount /mnt/home /mnt/boot /mnt
Make sure to do networking:
/etc/systemd/network/20-wired.network [Match] Name=enp1s0 [Network] DHCP=yes
reboot
Enable Swap
mkswap /dev/mapper/MyStorage-swap swapon /dev/mapper/MyStorage-swap
Edit fstab:
nano /etc/fstab # /dev/mapper/MyStorage-swap UUID=32b094e3-e8de-113e-9dw6-72b99d31dd54 swap swap defaults 0 0
Enable Swap/Get UUID
sudo blkid
Saved Links
- https://wiki.archlinux.org/index.php/Users_and_Groups
- https://wiki.archlinux.org/index.php/Xorg
- https://wiki.archlinux.org/index.php/Beginners%27_Guide#Mount_the_partitions
- http://suddenkernelpanic.blogspot.de/2013/03/arch-linux-lvm-on-top-of-luks-2013-style.html
- https://bbs.archlinux.org/viewtopic.php?id=166876
- https://wiki.archlinux.org/index.php/Network_Configuration#Device_names
- https://wiki.archlinux.org/index.php/Beginners%27_Guide#Mount_the_partitions
- https://wiki.archlinux.org/index.php/Grub#GUID_Partition_Table_.28GPT.29_specific_instructions
- https://wiki.archlinux.org/index.php/Dm-crypt_with_LUKS#Initial_Setup
- https://wiki.archlinux.org/index.php/Partitioning
- https://wiki.archlinux.org/index.php/Installation_Guide
Installing with Intel Fake Raid (MDADM)
https://wiki.archlinux.org/index.php/Beginners'_guide#Preparation
at the time: 2015.09.01 iso
All I have done so far was get dhcp running, passwd root, and enabled sshd as I am installing over the network.
On to install:
Looks like it loaded mdadm [1]
ls /dev/md imsm0 ZERO_0
Lets see more:
# mdadm --detail-platform
Platform : Intel(R) Matrix Storage Manager Version : 5.6.2.1002 RAID Levels : raid0 raid1 raid10 raid5 Chunk Sizes : 4k 8k 16k 32k 64k 128k 2TB volumes : not supported 2TB disks : not supported Max Disks : 4 Max Volumes : 2 per array, 4 per controller I/O Controller : /sys/devices/pci0000:00/0000:00:1f.2 (SATA)
Read the next paragraph first please.
mdadm should locate the array and create /dev/md/* entries. If it doesn't do this automatically:
mdadm --assemble --scan
I did not find anything here so lets assemble the array inside the container:
mdadm -I /dev/md/imsm0 cat /proc/mdstat
I saw that the array was in auto-read-only and wondered what the heck was going on so I looked[2] and found that when created, before the first write, that just how they are.
ls -l /dev/md/
So, I bumbled through above, to be honest with you, I do not think any of it matters except possible the command with the -I[3] in it. I do not think that even that matters because it looks like after looking at dmesg the array was found and assembled/reconized at boot. The intel raid utility must have wrote the meta data and such. But just in case I was wrong, I left the above.
SO IT LOOKS LIKE YOU CAN START HERE:
mdadm --detail --scan
parted /dev/md/ZERO_O
ZERO_0 is my named array inside the imsm0 container[4] so hmm:
fdisk -l /dev/md/ZERO_0
Lets get to partitioning...they say not to partition entire arrays and instead create partitions and assemble them separately but I am not going to do that with intel fake raid.
MBR Install
Doing MBR because my bios does not support EFI, I ran into trouble with HYBRID/GPT, and my disks are only 20GB.
parted /dev/md/ZERO_0 mklabel msdos mkpart primary ext4 1MiB 100MiB set 1 boot on mkpart primary ext4 100MiB 16.5GiB mkpart primary linux-swap 16.5GiB 100%
Just to see changes:
fdisk -l /dev/md/ZERO_0
Create Filesystem/swap/activate swap
mkfs.ext4 /dev/md/ZERO_0p1 mkfs.ext4 /dev/md/ZERO_0p2 mkswap /dev/md/ZERO_0p3 swapon /dev/md/ZERO_0p3 mount /dev/md/ZERO_0p2 /mnt mkdir -p /mnt/boot mount /dev/md/ZERO_0p1 /mnt/boot/ nano /etc/pacman.conf
Uncomment multilib on x64
pacstrap -i /mnt base base-devel genfstab -U /mnt > /mnt/etc/fstab cat /mnt/etc/fstab nano /mnt/etc/fstab
replace UUIDs with:
/dev/md/ZERO_0p1 /dev/md/ZERO_0p2 /dev/md/ZERO_0p3 mdadm --detail --scan >> /mnt/etc/mdadm.conf
Chroot in for config
arch-chroot /mnt /bin/bash nano /etc/locale.gen
en_US.UTF-8 UTF-8
nano /etc/locale.conf
LANG=en_US.UTF-8
tzselect ln -sf /usr/share/zoneinfo/America/Chicago /etc/localtime
work on some grub stuff
pacman -Sv grub nano /etc/default/grub
- Uncomment GRUB_DISABLE_LINUX_UUID=true
#IGNORE LINE HAS TO DO WITH OLD GRUB *Add mdraid to GRUB_PRELOAD_MODULES #IGNORE LINE HAS TO DO WITH OLD GRUB GRUB_PRELOAD_MODULES="part_gpt part_msdos mdraid"
Lets finish
Raid Stuff
cat /etc/mdadm.conf nano /etc/mkinitcpio.conf
Add mdadm_udev to HOOKS=
HOOKS="base udev autodetect modconf block mdadm_udev filesystems keyboard fsck"
Add /sbin/mdmon to BINARIES[5]
BINARIES="/sbin/mdmon"
Regenerate it!
mkinitcpio -p linux
grub-install --recheck /dev/md/ZERO_0 grub-mkconfig -o /boot/grub/grub.cfg
cat /boot/grub/grub.cfg
echo your-hostname > /etc/hostname nano /etc/hosts systemctl enable dhcpcd@enp13s0.service exit umount -R /mnt reboot
Remove Disk
HYBRID MBR/GPT
In the end I did not do this, I could not get it to work because I did not have my raid array as bootable so I messed alot up trying to fix something that was not broken. I am keeping this here because I may try it again someday. For now I am doing the MBR method because my disks are only 20GB anyways.
So you have a few options here. I am not using large disks here but I am going with the MBR/GPT hybrid because, well, because. You could do I would think GPT, MBR, or MBR Hybrid.[6]
gdisk /dev/md/ZERO_0
Example from archlinux wiki:
# gdisk /dev/sdX o # create new empty GUID partition table n # partition 1 [enter], from beginning [enter], to 100GiB [+100GiB], linux fs type [enter] n # partition 2 [enter], from beginning [enter], to 108GiB [+8GiB], linux swap [8200] n # partition 3 [enter], from beginning [enter], [+1MiB], linux fs type [enter] r # recovery/transformation menu h # make hybrid mbr 3 # add partition 3 to hybrid mbr Place EFI GPT (0xEE) partition first in MBR (good for GRUB)? (Y/N): N Enter an MBR hex code (default 83): [enter] Set the bootable flag? (Y/N): Y Unused partition space(s) found. Use one to protect more partitions? (Y/N): N w # write table to disk and exit
v This will give you total disk size.... No problems found. 39063485 free sectors (18.6 GiB) available in 1 segments, the largest of which is 39063485 (18.6 GiB) in size. n 1 [enter] Start at beginning [enter] +16GiB [enter] [enter] n [enter] [enter] +2GiB [enter] 8200 [enter] n [enter] [enter] +1MiB [enter] [enter] r [enter] h [enter] 3 [enter] N [enter] [enter] Y [enter] N [enter] w [enter] Y [enter]
- DO NOT READ THISSo above, gdisk has an option to add the right flag [0xEF02] to a partition so the bios will find it but someone stated that gdisk lies or was broken. Anyways, I did not do it at first and my system failed to boot. Instead of using the Gdisk way [7] I used parted[8] because I did not read anything about that.
- DO NOT DO THIS
parted /dev/md/ZERO_0 p free [enter] set 3 bios_grub on Ignore q
- DO NOT DO THIS
Just to see changes:
gdisk /dev/md/ZERO_0 p[enter]
Create Filesystem/swap/activate swap
mkfs.ext4 /dev/md/ZERO_0p1 mkswap /dev/md/ZERO_0p2 swapon /dev/md/ZERO_0p2 mount /dev/md/ZERO_0p1 /mnt nano /etc/pacman.conf
Uncomment multilib on x64
pacstrap -i /mnt base base-devel genfstab -U /mnt > /mnt/etc/fstab arch-chroot /mnt /bin/bash nano /etc/locale.gen
en_US.UTF-8 UTF-8
nano /etc/locale.conf
LANG=en_US.UTF-8
tzselect ln -sf /usr/share/zoneinfo/America/Chicago /etc/localtime
Raid Stuff
mdadm --detail --scan >> /etc/mdadm.conf nano /etc/mkinitcpio.conf
Add mdadm to HOOKS=
HOOKS="base udev mdadm autodetect modconf block filesystems keyboard fsck" mkinitcpio -p linux
Grub Install with Hybrid GPT[9]A better reference: https://wiki.gentoo.org/wiki/Hybrid_partition_table
# pacman -Sv grub # grub-install --recheck /dev/md/ZERO_0 # grub-mkconfig -o /boot/grub/grub.cfg echo your-hostname > /etc/hostname nano /etc/hosts systemctl enable dhcpcd@enp13s0.service
Rescue
fsck /dev/your\ drive mount /dev/your\ drive /mnt/somewhere mount /dev/bootpart\ /mnt/somewhere/boot mount /dev /mnt/somewhere/dev -o bind mount /proc /mnt/somewhere/proc -o bind mount /sys /mnt/somewhere/sys -o bind [... connect to the internet by your preffered method ...] cp /etc/resolv.conf /mnt/somewhere/etc chroot /mnt/somewhere /bin/bash cat /proc/mounts | grep -v rootfs > /etc/mtab [... and setup grub and check your system ...]
Yourt Build Dir Space Out
/etc/makepkg.conf:
#-- Specify a directory for package building. #BUILDDIR=/tmp/makepkg
If you're using yaourt, you can tell it to build somewhere else, use --tmp commandline switch or edit /etc/yaourtrc, uncomment and change
#TMPDIR="/tmp"
to somewhere else.
Post Install
useradd -m -G wheel -s /bin/bash user #crap pacman -Sv udisks2 ntfs-3g #crap pacman -Sv inotify-tools #crap nano /etc/udev/rules.d/99-udisks2.rules locale-gen en_US en_US.UTF-8 pacman -Sv devmon systemctl enable devmon@user.service systemctl start devmon@user.service
Clearing Failed Units
http://linux-audit.com/auditing-systemd-solving-failed-units-with-systemctl/
DHCP Service Increasing Timeout
su mkdir /etc/systemd/system/dhcpcd@.service.d nano /etc/systemd/system/dhcpcd@.service.d/timeout.conf
File:
[Service] ExecStart= ExecStart=/usr/bin/dhcpcd -w -q -t 0 %I
Where -t 0 is infinite wait
nano /etc/systemd/system/dhcpcd@.service.d/dhcpcdrestart.conf
File:
[Service] Restart=always
Bring Network Interface Up With No IP
About the other interface:
Right now I do a systemctl enable dhcpcd@enp14s0.service to dhcp that interface...I need the other interface to come up with nothing
It will work but it is reccomended to use networkd for all:
14:38 < vodik> webdawg: no, but networkd has a lighter dhcp implementation, you can use that 14:38 < vodik> webdawg: [Match] Name=differentinterface [Network] DHCP=yes
About the interface I want to turn up on each boot:
14:35 < vodik> webdawg: networkd can do it 14:35 < vodik> webdawg: [Match] Name=... [Network] 14:35 < vodik> webdawg: if you have an empty [Network] section, networkd will bring the interface up but leave it unconfigured cd /etc/systemd/network/ sudo nano enp13s0.network
File:
[Match] Name=enp13s0 [Network]
The archlinux doc above says to enable two services:
sudo systemctl enable systemd-networkd.service sudo systemctl enable systemd-resolved.service
Since I am going to still use the dhcpcd I am not going to enable resolved.service
udiskie
udiskie is a mount helper using either |udisks or udisks2 It includes support for password protected LUKS devices. See the udiskie wiki for usage details.
Github: udiskie
udiskie - xfce
pacman -Sv xfce4-notifyd notify-osd udiskie cp /etc/X11/xinit/xinitrc .xinitrc nano .xinitrc
Add to bottom (you will not need to do this if you have your .xinitrc done right):
source /etc/X11/xinit/xinitrc.d/50-systemd-user.sh udiskie &
Log out
startx
Run to test:
xfce4-notifyd-config
NetworkManager
sudo pacman -Sv networkmanager networkmanager-openvpn network-manager-applet xfce4-notifyd
- Should the applet not appear, install the xfce4-indicator-plugin AUR
You have to disable any conflicting services:
dhcpcd@.service
and/or
netctl list
Network Manager Password Prompt
No prompt for password of secured Wi-Fi networks: When trying to connect to a secured Wi-Fi network, no prompt for a password is shown and no connection is established. This happens when no keyring package is installed. An easy solution is to install gnome-keyring. If you want the passwords to be stored in encrypted form, follow GNOME Keyring to set up the gnome-keyring-daemon.
pacman -Sv gnome-keyring
I have not configured but it looks like it prompts now, will have to see how it works later.
Reccomended Packages
base-devel git
References
- ↑ https://forums.gentoo.org/viewtopic-t-888520-start-0.html
- ↑ https://unix.stackexchange.com/questions/101072/new-md-array-is-auto-read-only-and-has-resync-pending
- ↑ https://serverfault.com/questions/226053/intel-matrix-storage-raid-and-linux-mdadm
- ↑ https://serverfault.com/questions/226053/intel-matrix-storage-raid-and-linux-mdadm
- ↑ https://bbs.archlinux.org/viewtopic.php?id=137058
- ↑ https://wiki.archlinux.org/index.php/GUID_Partition_Table#gdisk_basic_.28with_hybrid_MBR.29
- ↑ https://wiki.gentoo.org/wiki/GRUB2
- ↑ https://velenux.wordpress.com/2012/07/12/grub-failing-to-install-on-debianubuntu-with-gpt-partitions/
- ↑ https://wiki.archlinux.org/index.php/GRUB#GUID_Partition_Table_.28GPT.29_specific_instructions