[Solved] Failed to mount /boot/efi

Hi,
Recently I've been having a lot of trouble starting Arch Linux. As in I can't. It starts off fine, but then whike it tries to mount my disks I get this problem:
systemd-fsck[159]: fsck.fat 3.0.23 (2013-10-15)
systemd-fsck[159]: /dev/sda5: 111 files, 6783/130048 clusters
[ OK ] Started File System Check on /dev/disk/by-uuid/6AE1-65C8.
Mounting /boot/efi...
[ FAILED ] Failed to mount /boot/efi.
See 'systemctl status boot-efi.mount' for details.
[ DEPEND ] Dependency failed for Local File Systems.
Welcome to emergency mode! After logging in, type "journalctl -xb" to view system logs, "systemctl reboot" to reboot, "systemctl default" to try again
to boot into default mode.
This is the output of systemctl status boot-efi.mount:
boot-efi.mount - /boot/efi
Loaded: loaded (/etc/fstab)
Active: failed (Result: exit-code) since Sun 2013-12-01 17:40:58 EST; 4min 16s ago
Where: /boot/efi
What: /dev/disk/by-uuid/6AE1-65C8
Process: 179 ExecMount=/bin/mount /dev/disk/by-uuid/6AE1-65C8 /boot/efi -t vfat -o rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro (code=exited, status=32)
Dec 01 17:40:58 jay-archlinux systemd[1]: boot-efi.mount mount process exited, code=exited status=32
Dec 01 17:40:58 jay-archlinux systemd[1]: Failed to mount /boot/efi
Dec 01 17:40:58 jay-archlinux systemd[1]: Unit boot-efi.mount entered failed state.
The output of mount /dev/disk/by-uuid/6AE1-65C8 /boot/efi -t vfat:
mount: unknown filesystem type: 'vfat'
(When I first started getting this it told me dosfstools wasn't installed. However I've since installed the latest version and it's made no difference.
I dual boot Arch Linux and Windows 8 on a laptop under UEFI, and have had this setup for about a year now. This problem seems like it may be associated with recent problems I've been having with windows 8 (Spontaneously restarting itself 2 or 3 times a day with a BSoD and "Kernel Data Inpage Error".) One time after such a restart I went to boot Arch Linux after the restart rather than Windows and got errors similar to the one I first posted, except that they were occurring with my Windows NTFS partitions which I mount in Arch Linux. After booting into Windows and restarting manually, the error just became what it is now. However I'm not sure if this was where the problem first began or not as I haven't used Arch Linux very often over the past few months.
Does anyone have any idea what's going on or how to fix it?
Thanks.
Last edited by jdgordon01 (2013-12-01 14:05:59)

pacman -Q linux
linux 3.11.6-1
uname -a
3.9.9-1-ARCH #1 SMP PREEMPT Wed Jul 3 22:45:16 CEST 2013 x86_64 GNU/Linux
No idea how that's happened... I initially tried 'mkinitcpio -p linux' but it also did nothing.
EDIT: Turns out I must have updated at some point and forgotten a crucial step in manually copying the new files in /boot/ to /boot/efi/EFI/arch/ which is necessary when updating under UEFI systems. I updated again using the live USB/chrooting, manually copied everything that was needed and everything's working again!
Last edited by jdgordon01 (2013-12-01 14:05:35)

Similar Messages

  • [SOLVED] Mount /boot/efi fails after linux-....pkg.tar.xz upgrade

    Can anyone help with this please?  Sorry if it's a well known issue and I have just failed to find the solution, but I have searched for one.
    I use yaourt -Syu regularly, and generally it's great.
    BUT - every time linux-3.17...-x86_64.pkg.tar.xz is upgraded the system fails to reboot!  Throwing something like:
    Nov 17 16:09:49 cart systemd[1]: boot-efi.mount mount process exited, code=exited status=32
    Nov 17 16:09:49 cart systemd[1]: Failed to mount /boot/efi.
    Nov 17 16:09:49 cart systemd[1]: Unit boot-efi.mount entered failed state.
    Nov 17 16:09:49 cart mount[232]: mount: unknown filesystem type 'vfat'
    After much struggling I have discovered a workaround, but I don't understand it - or like it.  This is what I do:
    1. Boot from an archiso image cd in UEFI mode
    2. Mount the correct partitions on / /home and /boot
    3. # arch-chroot /mnt /bin/bash
    4. # cd /var/cache/pacman/pkg
    5. # pacman -U linux-3.16.3-1-x86_64.pkg.tar.xz  (or whatever is the latest upgrade)
    Then, when I exit and reboot all is well again.
    I use the rEFInd boot manager to choose between ArchLinux and ,reluctantly, Windows 8.1 - I suspect that might have something to do with my problem but I don't know what.
    If anyone can tell what I am doing wrong, please explain.
    Thanks
    John
    Last edited by JohnColeman (2014-11-18 15:58:51)

    Hi Matt,
    I think you've done it - thanks a lot.
    I changed this line in my /etc/fstab :
      UUID=0E51-F605          /boot/efi     vfat ...
    to
      UUID=0E51-F605          /boot     vfat ...
    and I think that's done the trick. 
    I did pacman -U linux-3.16.3-1-x86_64.pkg.tar.xz again without booting from an archiso image cd in UEFI mode, which would previously have failed - and it didn't.
    I look forward to the next actual upgrade of linux-3...
    Thanks again,  I can't remember how, or why, I went wrong in fstab but I won't do it again.
    John

  • [SOLVED] Arch failed to mount /boot

    Hey there,
    after my btrfs filesystem somehow got corrupted, so it would only mount my "/"-filesystem as read-only, I backed it up with rsync, recreated the partition and then transfered the data back. After that, I was unable to boot anymore with this error:
    [1.593560] systemd-fsck[306]: fsck.fat 3.0.27 (2014-11-12)
    [1.594292] systemd-fsck[306] /dev/sda1: 98 files, 43105/98304 clusters
    Mounting boot...
    [FAILED]Failed to mount /boot.
    See "systemctl status boot.mount" for details
    SystemD the prompted me with it's emergency mode, but this didn't react to any keyboard presses, so I couldn't check the exact error with sth. like journalctl -xb. I then booted a, today downloaded, Arch Live-CD and tried to access the logs via journalctl -b -D /var/log/journal/ didn't work out: It only had the logs from before the boot problem.
    With a bit of googling I figured a way of fixing this could be chrooting in and reinstalling initramfs, typing chroot errored out with:
    chroot: failed to run command /usr/bin/zsh: No such file or directory
    I tried commenting out /boot in fstab, but at booting something [FAILED] with Load Kernel Modules and I instantly got prompted with a blank, black screen with a "_" blinking in the top left corner, like a normal console, expect any prompt of any kind was missing and it didn't react to my keystrokes, similiar to SystemD's emergency mode
    So essentially two smaller problems with few google results are hindering me from solving my big problem.
    Thanks for any help in advance,
    Quanttek
    Last edited by Quanttek (2015-05-26 09:48:21)

    Head_on_a_Stick wrote:
    Quanttek wrote:I use plain "chroot". "chroot --help" works, but not chroot itself. I also tried to rebuild the symbolic link from the normal lib -> /usr/lib to /lib/* -> /usr/lib/* and it didnt work
    https://wiki.archlinux.org/index.php/Ch … ing_chroot
    Probably easier to use `arch-chroot` though:
    https://wiki.archlinux.org/index.php/Ch … rch-chroot
    Thanks. Using arch-chroot worked out. It is/was certainly no environment issue, I even tested it with both i386 and x86_64.
    I used it to reinstall mkinitcpio and to update my system, so now on boot I dont get a failure on mounting /boot anymore, but I still have problems with Load Kernel Modules.
    My screen now looks something like this: http://m.imgur.com/ATWHJoq
    Again it's not reacting to any keystrokes. I'll get some sleep now and will look tomorrow into getting some information from the journal logs.

  • [SOLVED]dual boot-Failed to mount real root device

    Hello,
    Here is my drives partition info:
    /dev/sda1       2,949,122,048 3,907,028,991   957,906,944   7 NTFS / exFAT / HPFS
    /dev/sda2               2,048   901,117,951   901,115,904  83 Linux
    /dev/sda3    *    901,117,952 1,925,115,903 1,023,997,952   f W95 Extended (LBA)
    /dev/sda5         901,120,000   901,439,487       319,488  83 Linux
    /dev/sda6         901,441,536   905,648,127     4,206,592  82 Linux swap / Solaris
    /dev/sda7         905,650,176 1,925,115,903 1,019,465,728  83 Linux
    /dev/sda4       1,925,115,904 2,949,122,047 1,024,006,144   7 NTFS / exFAT / HPFS
    /dev/sdb1               2,048     2,099,199     2,097,152  83 Linux
    /dev/sdb2           2,099,200    53,299,199    51,200,000  83 Linux
    /dev/sdb3          53,299,200    73,779,199    20,480,000  83 Linux
    /dev/sdb4          73,779,200   224,673,791   150,894,592   7 NTFS / exFAT / HPFS
    I installed Opensuse 12.1 on /dev/sda5. It is booting with Grub, working with no problems. The computer boots directly to Grub menu.
    THEN, I installed Arch linux (last release) on both sda and sdb following these mounting points:
    /dev/sdb1 mounted as /boot  Ext2
    /dev/sdb2 mounted as /   BTRFS
    /dev/sdb3 mounted as /usr  BTRFS
    /dev/sda2 mounted as /home  BTRFS
    Intstallation went smooth until the end. Installed the bootloader.
    Now, I am trying to configure GRUB to boot Arch.
    Here is what I added on /boot/grub/menu.lst, in sda5 under Opensuse:
    title Arch Linux  [/boot/vmlinuz-linux]
        root (hd1,0)
        kernel /vmlinuz-linux root=/dev/sdb1 ro
        initrd /initramfs-linux.img
    In Opensuse, i can check that vmlinux and grub/menu.lst are indeed in /dev/sdb1
    My /etc/fstab is on /dev/sdb2
    =============================== sdb2/etc/fstab: ==========
    # /etc/fstab: static file system information
    # <file system>    <dir>    <type>    <options>    <dump>    <pass>
    tmpfs        /tmp    tmpfs    nodev,nosuid    0    0
    /dev/sda2 /home btrfs defaults 0 1
    /dev/sdb1 /boot ext2 defaults 0 1
    /dev/sdb2 / btrfs defaults 0 1
    /dev/sdb3 /usr btrfs defaults 0 1
    With this parameters, i got an message error when booting Arch:
    Mounting /dev/sdb1 on /new_root failed: no such device.
    Error : failed to mount the real root device.
    So, at busybox prompt, I tried this command line :
    ramfs # mount -t ext2 /dev/sdb1
    Got an error : Can't read /etc/fstab
    I tried too to give a uuid adress to sdb1 in my menu.lst file, but it didn't change anything, so I am sure partition number is correct.
    It seems to me in fact that GRUB can't find fstab.
    Two questions :
    -Would it be better in fact to use only 1 GRUB file for both systems? If yes, shall I keep only the grub config from Opensuse?
    -What do I wrong with Arch booting? Why can't I boot Arch?
    EDIT :1- just realised there is no BOOT flag in my partiton table on /dev/sdb.
                2- root is on /dev/sdb2, not sdb1.
    1-I toggled my first partition bootable using fdisk
    2-changed root to point to /dev/sdb2
    Now booting into Arch login
    Last edited by gabx (2011-11-22 22:33:09)

    It was a very simple problem. I used the wrong uuid for my /
    Correct entry in 40_custom is:
    #!/bin/sh
    exec tail -n +3 $0
    # This file provides an easy way to add custom menu entries. Simply type the
    # menu entries you want to add after this comment. Be careful not to change
    # the 'exec tail' line above.
    menuentry "Arch Linux uuid" {
    insmod part_msdos
    insmod ext2
    search --fs-uuid --no-floppy --set=root 8516fa60-0d45-4f33-b269-817c5290f6cc
    linux /vmlinuz26 root=/dev/disk/by-uuid/9f32e668-2548-4ed4-a10b-3fbea66a6d95 ro vga=775
    initrd /kernel26.img
    Now the boot is working great. Next thing was that my /home and swap was not detected.
    That was simply because /etc/fstab was still using /dev/sda etc naming. changing  that to uuid solved that part as well.
    To use uuid all the way and of cause the correct one solved everything
    /Christer
    Last edited by agkbill (2011-07-15 16:00:30)

  • [Solved] Pacman errors: "call to execv failed", system not booting

    Recent upgrade (yesterday) - problems went like this:
    1) pacman -Syu attempted "filesystem" upgrade and threw errors about some directories in /usr/local being 775 not 755.
    2) that was because I had a non-standard package in there. I changed just those relevant directories to 755.
    3) reattempted pacman -Syu but got a bunch of errors: "call to execv failed"
    4) system was immediately borked. Reboot now throws me into a shell.
    This is a 32 bit system.
    Any ideas and help would be greatly appreciated.
    Last edited by lagagnon (2013-01-30 19:10:24)

    Solved my problem with the following method:
    1) used Arch LiveCD. Mounted boot and / partitions
    2) pacman -r /path/to/root -Syyu glibc filesystem
    3) reboot gave "Unable to find root device error"
    4) ran LiveCD again following these instructions: https://wiki.archlinux.org/index.php/Pa … onger_boot

  • [SOLVED] netfs fails to mount samba mountpoint in fstab

    Answer:  netfs fails to mount my samba mountpoint because eventhough
    network is before netfs, and network is not started in the background, it
    still seems to take a while to complete, but it doesn't block netfs from running.
    If I put some stalling code in /etc/rc.d/network, and make it wait, then netfs
    will mount the shares, because network was allowed to start and netfs can
    it can find the servers.
    Now, what I want to know is why my network starts up so slowly.
    ----------------------- Read thread for details ----------------------
    This similar setup is working on my old Gentoo setup.
    fstab
    //tib/public /mnt/network/tib smbfs rw,user,auto,guest 0 0
    tib resolves to a server on my LAN.
    When I boot my ARCH system, it gets to netfs daemon, and times out trying to
    access the server.  I get the message
    5711: Connection to tib failed
    SMB connection failed
    The boot completes, and I log in and get the following
    $ ping tib
    PING tiburon.mill (192.168.0.36) 56(84) bytes of data.
    64 bytes from tiburon.mill (192.168.0.36): icmp_seq=1 ttl=64 time=0.354 ms
    64 bytes from tiburon.mill (192.168.0.36): icmp_seq=2 ttl=64 time=0.371 ms
    and, I can mount it like this (which reads /etc/fstab)
    $ mount //tib/public
    $ ls /mnt/network/tib/ | wc -l
    11
    It seems like ARCH isn't able to use the network until sometime after this point in the boot.  Here's my rc.conf daemons
    DAEMONS=(syslog-ng network netfs crond sshd alsa)
    I tried putting netfs last, but that made no difference.  I also tried to load netfs in the background without benefit.
    Note:  cifs doesn't work either; and I get more descriptive errors
    :: Mounting Network Filesystems
    mount error: count not find target server. TCP name tib/public not found
    No ip address specified and hostname not found.
    OK, that clear enough.  But, the hostname is found right when the boot process finishes and I get a prompt.
    And, I've tried the ip address, and FQDN too.
    Any ideas?
    Last edited by ristretto (2007-07-24 05:04:57)

    ok, gave it a try.
    //tib/public /mnt/network/tib cifs rw,user,noauto,guest 0 0
    $ cat /etc/rc.d/local
    #!/bin/bash
    mount //tib/public
    $ grep DAE /etc/rc.conf
    # DAEMONS
    DAEMONS=(syslog-ng network netfs crond sshd alsa local)
    Note local at the end.
    Now, all the daemons load up quick, and then local goes and times out, and I
    get the same error.
    mount error: count not find target server. TCP name tib/public not found
    No ip address specified and hostname not found.
    putting mount in .bash_profile is a bit of a security issue (though not really on my setup)
    but, more importantly, it mounts each time I log in to that account (say each ssh window to the box.)
    I'm thinking it's a bug in the initialization process somewhere?  I've never had this problem on other distros.
    What thinks you?

  • 17" MBP fails to boot. Hangs trying to find boot.efi

    My previous generation MBP (silver keyboard) seems to be dead. It's been a little flakey lately, but today when I opened the lid I got a spinning circle that never went anywhere. Upon a reboot, I got a gray apple screen that eventually becomes a grey do not enter screen that goes to a gray apple screen and now (after about 20 minutes) a blinking question mark folder on a gray screen. I'm sure that a :( can't be far behind.
    Single user mode hangs on "boot file:\path\system\library\coreservices\boot.efi"
    I've tried resetting the PRAM and the NVRAM and the system reset where you pull the battery and hold the power button for five seconds. No joy. Not sure if that still even does anything. It's probably just an Mac-head superstition at this point--like wearing a black turtleneck during fresh installs.  (Sorry I digress)
    I've always been diligent to run permissions repair before and after updates and to run "fsck -fy" after any hard reboots (of which there were a few over the last couple of months) it takes about 10 minutes and then boots cleanly thereafter.
    Oddly enough it will go into target mode but my iPad has no way to connect to it and the MacPro at the office is a long way away.  Fans work, start-up sound works, battery is at 85% and power is plugged in (on both sides and in the middle). Nothing else is attached. No meteors have fallen in the yard, and imm not under water. I'm wearing gray pants and a light gray shirt. Boxers, no socks or shoes. Middle-aged, about 10 pounds overweight, and mostly bald.  There I think I've provided all the information you guys will need. :)
    Ideas? Go!

    kipek,
    you can try this: boot your MacBook Pro into Recovery mode by holding down a Command key and the R key as it starts up. Once the OS X Utilities menu appears, select Disk Utility. On the left-hand side of the Disk Utility window, select your internal disk’s boot partition (typically called “Macintosh HD”). On the right-hand side, select the First Aid tab if it’s not already selected, then press the Verify Disk button if it’s not greyed out; if it is greyed out, or if it reports that errors were found, press the Repair Disk button. Once the verification/repair is completed, exit Disk Utility and select Restart from the Apple menu to restart in normal mode. Does it reach the login screen now?

  • System Image Utility "volume on diskxsx failed to mount"

    I've been trying to create a NetRestore image using System Image Utility (SIU) for the past couple of days, but no matter what I do it fails.  I was oringally using OSX 10.8.4, but have now upgraded to 10.8.5.
    After reading through the logs, I can see SIU fails whilst it's trying to mount the volume.  Has anyone else had this issue, and if so, were you able to fix it?
    I also noticed the "Create image of /Volume/Macintosh HD/" function stops at 48% instead of 100%.  Is that normal?
    Below is a copy of the log that SIU produced.
    Starting image creation.
    Workflow Started (2013-09-24 08:41:36 +0100)
    OS X Server 10.8.5 (12F37), System Image Utility 10.8.3 (624)
    Starting action: Define Image Source (1.4)
    Finished running action: Define Image Source
    Starting action: Create Image (1.7.2)
    Starting image creation process...
    Create NetRestore Image
    Initiating NetRestore from installed volume.
    progressPrefix="_progress"
    ++ progressPrefix=_progress
    scriptsDebugKey="DEBUG"
    ++ scriptsDebugKey=DEBUG
    imageIsUDIFKey="1"
    ++ imageIsUDIFKey=1
    imageFormatKey="UDZO"
    ++ imageFormatKey=UDZO
    mountPoint=""
    ++ mountPoint=
    ownershipInfoKey="501:20"
    ++ ownershipInfoKey=501:20
    blockCopyDeviceKey="0"
    ++ blockCopyDeviceKey=0
    dmgTarget="NetInstall"
    ++ dmgTarget=NetInstall
    potentialRecoveryDevice="disk4s3"
    ++ potentialRecoveryDevice=disk4s3
    asrSource="ASRInstall.pkg"
    ++ asrSource=ASRInstall.pkg
    destPath="/Users/morgan/Desktop/NetRestore of Macintosh HD_2.nbi"
    ++ destPath='/Users/morgan/Desktop/NetRestore of Macintosh HD_2.nbi'
    skipReorderingKey="0"
    ++ skipReorderingKey=0
    sourceVol="/Volumes/Macintosh HD"
    ++ sourceVol='/Volumes/Macintosh HD'
    postInstallHelperKey="1"
    ++ postInstallHelperKey=1
    . "${1}/createCommon.sh"
    + . /tmp/niutemp.rDvE48RI/createCommon.sh
    # createCommon.sh
    # Common functionality for the Image creation process.
    # sourced in by the various SIU scripts
    # Copyright © 2007-2012 Apple Inc. All rights reserved.
    # Using dscl, create a user account
    AddLocalUser()
    # $1 volume whose local node database to modify
    # $2 long name
    # $3 short name
    # $4 isAdminUser key
    # $5 password data
    # $6 password hint
    # $7 user picture path
    # $8 Language string
    local databasePath="/Local/Default/Users/${3}"
    local targetVol="${1}"
    # Find a free UID between 501 and 599
    for ((i=501; i<600; i++)); do
    output=`/usr/bin/dscl -f "${targetVol}/var/db/dslocal/nodes/Default" localonly -search /Local/Default/Users UniqueID $i`
    # If there is already an account dscl returns it, so we're looking for an empty return value.
    if [ "$output" == "" ]; then
    break
    fi
    done
    # Create the user record
    /usr/bin/dscl -f "${targetVol}/var/db/dslocal/nodes/Default" localonly -create $databasePath
    if [ $? != 0 ]; then
    echo "Failed to create '${databasePath}'."
    return 1
    fi
    # Add long name
    /usr/bin/dscl -f "${targetVol}/var/db/dslocal/nodes/Default" localonly -append $databasePath RealName "${2}"
    if [ $? != 0 ]; then
    echo "Failed to set the RealName."
    return 1
    fi
    # Set up the users group information
    /usr/bin/dscl -f "${targetVol}/var/db/dslocal/nodes/Default" localonly -append $databasePath PrimaryGroupID 20
    if [ $? != 0 ]; then
    echo "Failed to set the PrimaryGroupID."
    return 1
    fi
    # Add some additional stuff if the user is an admin
    if [ "${4}" == 1 ]; then
    /usr/bin/dscl -f "${targetVol}/var/db/dslocal/nodes/Default" localonly -append "/Local/Default/Groups/admin" GroupMembership "${3}"
    if [ $? != 0 ]; then
    echo "Failed to add the user to the admin group."
    return 1
    fi
    /usr/bin/dscl -f "${targetVol}/var/db/dslocal/nodes/Default" localonly -append "/Local/Default/Groups/_appserveradm" GroupMembership "${3}"
    if [ $? != 0 ]; then
    echo "Failed to add the user to the _appserveradm group."
    return 1
    fi
    /usr/bin/dscl -f "${targetVol}/var/db/dslocal/nodes/Default" localonly -append "/Local/Default/Groups/_appserverusr" GroupMembership "${3}"
    if [ $? != 0 ]; then
    echo "Failed to add the user to the _appserverusr group."
    return 1
    fi
    fi
    # Add UniqueID
    /usr/bin/dscl -f "${targetVol}/var/db/dslocal/nodes/Default" localonly -append $databasePath UniqueID ${i}
    if [ $? != 0 ]; then
    echo "Failed to set the UniqueID."
    return 1
    fi
    # Add Home Directory entry
    /usr/bin/dscl -f "${targetVol}/var/db/dslocal/nodes/Default" localonly -append $databasePath NFSHomeDirectory /Users/${3}
    if [ $? != 0 ]; then
    echo "Failed to set the NFSHomeDirectory."
    fi
    if [ "${6}" != "" ]; then
    /usr/bin/dscl -f "${targetVol}/var/db/dslocal/nodes/Default" localonly -append $databasePath AuthenticationHint "${6}"
    if [ $? != 0 ]; then
    echo "Failed to set the AuthenticationHint."
    return 1
    fi
    fi
    /usr/bin/dscl -f "${targetVol}/var/db/dslocal/nodes/Default" localonly -append $databasePath picture "${7}"
    if [ $? != 0 ]; then
    echo "Failed to set the picture."
    return 1
    fi
    /usr/bin/dscl -f "${targetVol}/var/db/dslocal/nodes/Default" localonly -passwd $databasePath "${5}"
    if [ $? != 0 ]; then
    echo "Failed to set the passwd."
    return 1
    fi
    # Add shell
    /usr/bin/dscl -f "${targetVol}/var/db/dslocal/nodes/Default" localonly -append $databasePath UserShell "/bin/bash"
    if [ $? != 0 ]; then
    echo "Failed to set the UserShell."
    return 1
    fi
    # Create Home directory
    if [ -e "/System/Library/User Template/${8}.lproj/" ]; then
    /usr/bin/ditto "/System/Library/User Template/${8}.lproj/" "${targetVol}/Users/${3}"
    else
    /usr/bin/ditto "/System/Library/User Template/English.lproj/" "${targetVol}/Users/${3}"
    fi
    if [ $? != 0 ]; then
    echo "Failed to copy the User Template."
    return 1
    fi
    /usr/sbin/chown -R $i:$i "${targetVol}/Users/${3}"
    if [ $? != 0 ]; then
    echo "Failed to set ownership on the User folder."
    return 1
    fi
    # Copies a list of files (full paths contained in the file at $1) from source to the path specified in $2
    CopyEntriesFromFileToPath()
    local theFile="$1"
    local theDest="$2"
    local opt=""
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    opt="-v"
    fi
    while read FILE
    do
    if [ -e "${FILE}" ]; then
    local leafName=`basename "${FILE}"`
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    echo "Copying ${FILE}."
    fi
    /usr/bin/ditto $opt "${FILE}" "${theDest}/${leafName}" || return 1
    fi
    done < "${theFile}"
    return 0
    # Copies a list of packages (full path, destination pairs contained in the file at $1) from source to .../System/Installation/Packages/
    CopyPackagesWithDestinationsFromFile()
    local theFile="$1"
    local opt=""
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    opt="-v"
    fi
    while read FILE
    do
    if [ -e "${FILE}" ]; then
    local leafName=`basename "${FILE}"`
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    echo "Copying ${FILE}."
    fi
    read SUB_PATH
    /usr/bin/ditto $opt "${FILE}" "${mountPoint}/Packages/${SUB_PATH}${leafName}" || return 1
    fi
    done < "${theFile}"
    return 0
    # Create an installer package in ${1} wrapping the supplied script ${2}
    CreateInstallPackageForScript()
    local tempDir="$1"
    local scriptPath="$2"
    local scriptName=`basename "${scriptPath}"`
    local entryDir=`pwd`
    local opt=""
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    echo "Create installer for script ${scriptName}"
    opt="-v"
    fi
    # shouldn't exist on entry...
    if [ -e "${tempDir}/emptyDir" ]; then
    /bin/rm -rf "${tempDir}/emptyDir"
    fi
    # make some directories to work in
    /bin/mkdir $opt -p "${tempDir}/${scriptName}.pkg/Contents/Resources" || return 1
    /bin/mkdir $opt "${tempDir}/emptyDir" || return 1
    # Create Archive.pax.gz
    cd "${tempDir}/emptyDir"
    /bin/pax -w -x cpio -f "${tempDir}/${scriptName}.pkg/Contents/Archive.pax" .
    /usr/bin/gzip "${tempDir}/${scriptName}.pkg/Contents/Archive.pax"
    cd "${entryDir}"
    # Create the Archive.bom file
    /usr/bin/mkbom "${tempDir}/emptyDir/" "${tempDir}/${scriptName}.pkg/Contents/Archive.bom" || return 1
    # Create the Info.plist
    /bin/cat > "${tempDir}/${scriptName}.pkg/Contents/Info.plist" << END
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
    <key>CFBundleIdentifier</key>
    <string>com.apple.SystemImageUtility.${scriptName}</string>
    <key>CFBundleShortVersionString</key>
    <string>1</string>
    <key>IFMajorVersion</key>
    <integer>1</integer>
    <key>IFMinorVersion</key>
    <integer>0</integer>
    <key>IFPkgFlagDefaultLocation</key>
    <string>/tmp</string>
    <key>IFPkgFlagInstallFat</key>
    <false/>
    <key>IFPkgFlagIsRequired</key>
    <false/>
    <key>IFPkgFormatVersion</key>
    <real>0.10000000149011612</real>
    </dict>
    </plist>
    END
    echo "pkmkrpkg1" > "${tempDir}/${scriptName}.pkg/Contents/PkgInfo"
    echo "major: 1\nminor: 0" > "${tempDir}/${scriptName}.pkg/Contents/Resources/package_version"
    # Copy the script
    /bin/cp "$scriptPath" "${tempDir}/${scriptName}.pkg/Contents/Resources/postflight"
    # clean up
    /bin/rm -r "${tempDir}/emptyDir"
    return 0
    # Validate or create the requested directory
    CreateOrValidatePath()
    local targetDir="$1"
    if [ ! -d "${targetDir}" ]; then
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    echo "Creating working path at ${targetDir}"
    fi
    /bin/mkdir -p "${targetDir}" || return 1
    fi
    # If any exist, apply any user accounts
    CreateUserAccounts()
    # $1 volume whose local node database to modify
    local count="${#userFullName[*]}"
    local targetVol="${1}"
    if [ $count -gt 0 ]; then
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    echo "Adding $count user account(s) to the image"
    fi
    for ((index=0; index<$count; index++)); do
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    echo "Adding user ${userFullName[$index]}"
    fi
    #lay down user here
    AddLocalUser "${targetVol}" "${userFullName[$index]}" "${userUnixName[$index]}" "${userIsAdmin[$index]}" "${userPassword[$index]}" "${userPassHint[$index]}" "${userImagePath[$index]}" "${userLanguage[$index]}"
    if [ $? != 0 ]; then
    echo "Failed to create the User '${userUnixName[$index]}'."
    return 1
    fi
    #suppress the Apple ID request
    DisableAppleIDRequestForUser "${targetVol}" "${userUnixName[$index]}"
    done
    # "touch"
    /usr/bin/touch "${targetVol}/private/var/db/.AppleSetupDone"
    /usr/bin/touch "${targetVol}/Library/Receipts/.SetupRegComplete"
    fi
    # retry the hdiutil detach until we either time out or it succeeds
    retry_hdiutil_detach()
    local mount_point="${1}"
    local tries=0
    local forceAt=0
    local limit=24
    local opt=""
    forceAt=$(($limit - 1))
    while [ $tries -lt $limit ]; do
    tries=$(( tries + 1 ))
    /bin/sleep 5
    echo "Attempting to detach the disk image again..."
    /usr/bin/hdiutil detach "${mount_point}" $opt
    if [ $? -ne 0 ]; then
    # Dump a list of any still open files on the mountPoint
    if [ "${scriptsDebugKey}" == "DEBUG" ]; then
    /usr/sbin/lsof +fg "${mount_point}"
    fi
    if [ $tries -eq $forceAt ]; then
    echo "Failed to detach disk image at '${mount_point}' normally, adding -force."
    opt="-force"
    fi
    if [ $tries -eq $limit ]; then
    echo "Failed to detach disk image at '${mount_point}'."
    exit 1
    fi
    else
    tries=$limit
    fi
    done
    # Create the dyld shared cache files
    DetachAndRemoveMount()
    local theMount="${1}"
    local mountLoc=`mount | grep "${theMount}"`
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    echo "Detaching disk image"
    # Dump a list of any still open files on the mountPoint
    if [ "${scriptsDebugKey}" == "DEBUG" ]; then
    /usr/sbin/lsof +fg "${theMount}"
    fi
    fi
    # Finally detach the mount (if it's actually mounted) and dispose the mountPoint directory
    if [ "${mountLoc}" != "" ]; then
    /usr/bin/hdiutil detach "${theMount}" || retry_hdiutil_detach "${theMount}" || return 1
    fi
    /bin/rmdir "${theMount}" || return 1
    return 0
    # Turn off the Apple ID request that happens on first boot after installing the OS
    DisableAppleIDRequestForUser()
    local targetUserLib="${1}/Users/${2}/Library"
    # Only do this if the file doesn't exist
    if [ ! -e "${targetUserLib}/Preferences/com.apple.SetupAssistant.plist" ]; then
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    echo "Disabling Apple ID request for user '${2}'"
    fi
    /usr/libexec/PlistBuddy -c "Add :DidSeeCloudSetup bool 1" "${targetUserLib}/Preferences/com.apple.SetupAssistant.plist" > /dev/null 2>&1
    /usr/libexec/PlistBuddy -c "Add :LastSeenCloudProductVersion string 10.8" "${targetUserLib}/Preferences/com.apple.SetupAssistant.plist" > /dev/null 2>&1
    fi
    return 0
    # If the pieces exist, enable remote access for the shell image
    EnableRemoteAccess()
    local srcVol="${1}"
    local opt=""
    if [ -e "${srcVol}/usr/lib/pam/pam_serialnumber.so.2" ]; then
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    echo "Enabling shell image remote access support"
    opt="-v"
    fi
    # install some things (again which aren't part of BaseSystem) needed for remote ASR installs
    /usr/bin/ditto $opt "${srcVol}/usr/lib/pam/pam_serialnumber.so.2" "${mountPoint}/usr/lib/pam/pam_serialnumber.so.2" || return 1
    if [ -e "${srcVol}/usr/sbin/installer" ]; then
    /usr/bin/ditto $opt "${srcVol}/usr/sbin/installer" "${mountPoint}/usr/sbin/installer" || return 1
    fi
    # copy the sshd config and add our keys to the end of it
    if [ -e "${srcVol}/etc/sshd_config" ]; then
    /bin/cat "${srcVol}/etc/sshd_config" - > "${mountPoint}/etc/sshd_config" << END
    HostKey /private/var/tmp/ssh_host_key
    HostKey /private/var/tmp/ssh_host_rsa_key
    HostKey /private/var/tmp/ssh_host_dsa_key
    END
    fi
    fi
    return 0
    # If it exists, install the sharing names and/or directory binding support to the install image
    HandleNetBootClientHelper()
    local tempDir="${1}"
    local targetVol="${2}"
    local opt=""
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    opt="-v"
    fi
    if [ -e  "${tempDir}/bindingNames.plist" ]; then
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    echo "Installing Directory Service binding information"
    fi
    /usr/bin/ditto $opt "${tempDir}/bindingNames.plist" "${targetVol}/etc/bindingNames.plist" || return 1
    /usr/sbin/chown root:wheel "${targetVol}/etc/bindingNames.plist"
    /bin/chmod 644 "${targetVol}/etc/bindingNames.plist"
    fi
    if [ -e  "${tempDir}/sharingNames.plist" ]; then
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    echo "Installing Sharing Names support"
    fi
    /usr/bin/ditto $opt "${tempDir}/sharingNames.plist" "${targetVol}/etc/sharingNames.plist" || return 1
    /usr/sbin/chown root:wheel "${targetVol}/etc/sharingNames.plist"
    /bin/chmod 644 "${targetVol}/etc/sharingNames.plist"
    fi
    if [ -e  "${tempDir}/NetBootClientHelper" ]; then
    /usr/bin/ditto $opt "${tempDir}/NetBootClientHelper" "${targetVol}/usr/sbin/NetBootClientHelper" || return 1
    /usr/sbin/chown root:wheel "${targetVol}/usr/sbin/NetBootClientHelper"
    /bin/chmod 555 "${targetVol}/usr/sbin/NetBootClientHelper"
    /usr/bin/ditto $opt "${tempDir}/com.apple.NetBootClientHelper.plist" "${targetVol}/System/Library/LaunchDaemons/com.apple.NetBootClientHelper.plist" || return 1
    /usr/sbin/chown root:wheel "${targetVol}/System/Library/LaunchDaemons/com.apple.NetBootClientHelper.plist"
    /bin/chmod 644 "${targetVol}/System/Library/LaunchDaemons/com.apple.NetBootClientHelper.plist"
    # finally, make sure it isn't disabled...
    /usr/libexec/PlistBuddy -c "Delete :com.apple.NetBootClientHelper" "${targetVol}/var/db/launchd.db/com.apple.launchd/overrides.plist" > /dev/null 2>&1
    fi
    return 0
    # If any exist, install configuration profiles to the install image
    InstallConfigurationProfiles()
    local tempDir="${1}"
    local targetVol="${2}"
    local profilesDir="${targetVol}/var/db/ConfigurationProfiles"
    if [ -e  "${tempDir}/configProfiles.txt" ]; then
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    echo "Installing Configuration Profiles"
    fi
    /bin/mkdir -p "${profilesDir}/Setup" || return 1
    # Make sure the perms are correct
    /usr/sbin/chown root:wheel "${profilesDir}"
    /bin/chmod 755 "${profilesDir}"
    /usr/sbin/chown root:wheel "${profilesDir}/Setup"
    /bin/chmod 755 "${profilesDir}/Setup"
    /usr/bin/touch "${profilesDir}/.profilesAreInstalled"
    CopyEntriesFromFileToPath "${tempDir}/configProfiles.txt" "${profilesDir}/Setup" || return 1
    # Enable MCX debugging
    if [ 1 == 1 ]; then
    if [ -e  "${targetVol}/Library/Preferences/com.apple.MCXDebug.plist" ]; then
    /usr/libexec/PlistBuddy -c "Delete :debugOutput" "${targetVol}/Library/Preferences/com.apple.MCXDebug.plist" > /dev/null 2>&1
    /usr/libexec/PlistBuddy -c "Delete :collateLogs" "${targetVol}/Library/Preferences/com.apple.MCXDebug.plist" > /dev/null 2>&1
    fi
    /usr/libexec/PlistBuddy -c "Add :debugOutput string -2" "${targetVol}/Library/Preferences/com.apple.MCXDebug.plist" > /dev/null 2>&1
    /usr/libexec/PlistBuddy -c "Add :collateLogs string 1" "${targetVol}/Library/Preferences/com.apple.MCXDebug.plist" > /dev/null 2>&1
    fi
    fi
    # Converts a list of scripts (full paths contained in the file at $1) into packages in $3
    InstallScriptsFromFile()
    local tempDir="${1}"
    local theFile="${2}"
    local targetDir="${3}"
    local opt=""
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    echo "Converting scripts into install packages"
    opt="-v"
    fi
    while read FILE
    do
    if [ -e "${FILE}" ]; then
    # make an installer package out of the script
    CreateInstallPackageForScript "$tempDir" "${FILE}" || return 1
    # copy the resulting package to the Packages directory
    local leafName=`basename "${FILE}"`
    /usr/bin/ditto $opt "${tempDir}/${leafName}.pkg" "${targetDir}/${leafName}.pkg" || return 1
    # clean up
    /bin/rm -r "${tempDir}/${leafName}.pkg"
    fi
    done < "${theFile}"
    return 0
    # Prepare the source by deleting stuff we don't want to copy if sourcing a volume
    PostFlightDestination()
    local tempDir="${1}"
    local destDir="${2}"
    local opt=""
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    echo "Performing post install cleanup"
    opt="-v"
    fi
    # delete the DS indices to force reindexing...
    if [ -e "${mountPoint}/var/db/dslocal/indices/Default/index" ]; then
    /bin/rm $opt "${mountPoint}/var/db/dslocal/indices/Default/index"
    fi
    # detach the disk and remove the mount folder
    DetachAndRemoveMount "${mountPoint}"
    if [ $? != 0 ]; then
    echo "Failed to detach and clean up the mount at '${mountPoint}'."
    return 1
    fi
    echo "Correcting permissions. ${ownershipInfoKey} $destDir"
    /usr/sbin/chown -R "${ownershipInfoKey}" "$destDir"
    # Prepare the source by deleting stuff we don't want to copy if sourcing a volume
    PreCleanSource()
    local srcVol="$1"
    local opt=""
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    opt="-v"
    fi
    if [ -e "$srcVol/private/var/vm/swapfile*" ]; then
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    echo "Removing swapfiles on $1"
    fi
    /bin/rm $opt "$srcVol/private/var/vm/swapfile*"
    fi
    if [ -e "$srcVol/private/var/vm/sleepimage" ]; then
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    echo "Removing sleepimage on $1"
    fi
    /bin/rm $opt "$srcVol/private/var/vm/sleepimage"
    fi
    if [ -d "$srcVol/private/tmp" ]; then
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    echo "Cleaning out /private/tmp on $1"
    fi
    /bin/rm -r $opt "$srcVol/private/tmp/*" > /dev/null 2>&1
    fi
    if [ -d "$srcVol/private/var/tmp" ]; then
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    echo "Cleaning out /private/var/tmp on $1"
    fi
    /bin/rm -r $opt "$srcVol/private/var/tmp/*" > /dev/null 2>&1
    fi
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    echo "Cleaning out devices and volumes on $1"
    fi
    if [ -d "$srcVol/Volumes" ]; then
    /bin/rm -r $opt "$srcVol/Volumes/*" > /dev/null 2>&1
    fi
    if [ -d "$srcVol/dev" ]; then
    /bin/rm $opt "$srcVol/dev/*" > /dev/null 2>&1
    fi
    if [ -d "$srcVol/private/var/run" ]; then
    /bin/rm -r $opt "$srcVol/private/var/run/*" > /dev/null 2>&1
    fi
    # Copy kernel and build the kext cache on the boot image
    PrepareKernelAndKextCache()
    local srcDir="$1"
    local destDir="$2"
    local opt=""
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    echo "Preparing the kernel and kext cache for the boot image"
    opt="-v"
    fi
    # Insure the kext cache on our source volume (the boot shell) is up to date
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    echo "Updating kext cache on source volume"
    fi
    /usr/sbin/kextcache -update-volume "${srcDir}" || return 1
    # Copy the i386 and, if it exists, the x86_64 architecture
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    echo "Installing the kext cache to the boot image"
    fi
    # make sure this doesn't exist
    if [ -e "${destDir}/i386" ]; then
    /bin/rm -rf "${destDir}/i386"
    fi
    # Install kextcaches to the nbi folder
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    echo "Creating a kernelcache for the boot shell"
    fi
    /bin/mkdir -p $opt "${destDir}/i386/x86_64" || return 1
    /usr/sbin/kextcache -arch x86_64 -L -N -S -z -K "${srcDir}/mach_kernel" -c "${destDir}/i386/x86_64/kernelcache" "${srcDir}/System/Library/Extensions" || return 1
    # Create the i386 and x86_64 boot loaders on the boot image
    PrepareBootLoader()
    local srcVol="$1"
    local destDir="$2"
    local opt=""
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    echo "Preparing boot loader"
    opt="-v"
    fi
    # Copy the boot.efi to the booter shell
    if [ -e "${mountPoint}/System/Library/CoreServices/boot.efi" ]; then
    /usr/bin/ditto $opt "${mountPoint}/System/Library/CoreServices/boot.efi" "${destDir}/i386/booter" || return 1
    else
    /usr/bin/ditto $opt "${srcVol}/System/Library/CoreServices/boot.efi" "${destDir}/i386/booter" || return 1
    fi
    # Unlock the file so we can change its owner later
    chflags nouchg "${destDir}/i386/booter"
    # Copy the PlatformSupport.plist file
    if [ -e "${mountPoint}/System/Library/CoreServices/PlatformSupport.plist" ]; then
    /usr/bin/ditto $opt "${mountPoint}/System/Library/CoreServices/PlatformSupport.plist" "${destDir}/i386/PlatformSupport.plist" || return 1
    else
    /usr/bin/ditto $opt "${srcVol}/System/Library/CoreServices/PlatformSupport.plist" "${destDir}/i386/PlatformSupport.plist" || return 1
    fi
    # If it exists, install the partitioning application and data onto the install image
    ProcessAutoPartition()
    local tempDir="$1"
    local opt=""
    local targetDir=""
    if [ -e "$tempDir/PartitionInfo.plist" ]; then
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    opt="-v"
    fi
    # Determine if this is an install source, or a restore source
    if [ -d "${mountPoint}/Packages" ]; then
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    echo "Installing Partitioning application and data to install image"
    fi
    targetDir="${mountPoint}/Packages"
    elif [ -d "${mountPoint}/System/Installation/Packages" ]; then
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    echo "Installing Partitioning application and data to restore image"
    fi
    targetDir="${mountPoint}/System/Installation/Packages"
    else
    echo "There doesn't appear to be either an install or restore source mounted at ${mountPoint}"
    return 1
    fi
    # Create the Extras directory if it doesn't exist
    if [ ! -d "${targetDir}/Extras" ]; then
    /bin/mkdir "${targetDir}/Extras"
    fi
    targetDir="${targetDir}/Extras"
    /usr/bin/ditto $opt "$tempDir/PartitionInfo.plist" "${targetDir}/PartitionInfo.plist" || return 1
    /usr/bin/ditto $opt "$tempDir/AutoPartition.app" "${targetDir}/AutoPartition.app" || return 1
    fi
    return 0
    # If it exists, install the minstallconfig.xml onto the install image
    ProcessMinInstall()
    local tempDir="$1"
    local opt=""
    local targetDir="${mountPoint}/Packages/Extras"
    if [ -e "$tempDir/minstallconfig.xml" ]; then
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    echo "Installing minstallconfig.xml to install image"
    opt="-v"
    fi
    /usr/bin/ditto $opt "$tempDir/minstallconfig.xml" "${targetDir}/minstallconfig.xml" || return 1
    /usr/sbin/chown root:wheel "${targetDir}/minstallconfig.xml"
    /bin/chmod 644 "${targetDir}/minstallconfig.xml"
    fi
    return 0
    # untar the OSInstall.mpkg so it can be modified
    untarOSInstallMpkg()
    local tempDir="$1"
    local opt=""
    # we might have already done this, so check for it first
    if [ ! -d "${tempDir}/OSInstall_pkg" ]; then
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    echo "uncompressing OSInstall.mpkg"
    opt="-v"
    fi
    /bin/mkdir "${tempDir}/OSInstall_pkg"
    cd "${tempDir}/OSInstall_pkg"
    /usr/bin/xar $opt -xf "${mountPoint}/System/Installation/Packages/OSInstall.mpkg"
    # make Distribution writeable
    /bin/chmod 777 "${tempDir}/OSInstall_pkg"
    /bin/chmod 666 "${tempDir}/OSInstall_pkg/Distribution"
    fi
    # Make a tempdir to mount the image on
    mountPoint=`mktemp -d "/tmp/mnt.XXXXXXXX"`
    mktemp -d "/tmp/mnt.XXXXXXXX"
    ++ mktemp -d /tmp/mnt.XXXXXXXX
    + mountPoint=/tmp/mnt.7E4iD6mQ
    sourceMount=""
    + sourceMount=
    crfsErrExit()
    echo "Execution of '`basename \"${0}\"`' failed. Cleaning up."
    # detach the disk and remove the mount folder
    DetachAndRemoveMount "${mountPoint}"
    # detach the mounted source, if necessary
    if [ "${sourceMount}" != "" ] ; then
    DetachAndRemoveMount "${sourceMount}"
    fi
    # Remove the items we created
    /bin/rm -r "$destPath/i386" > /dev/null 2>&1
    /bin/rm "$destPath/$dmgTarget.dmg" > /dev/null 2>&1
    /bin/rm "$destPath/System.dmg" > /dev/null 2>&1
    # Finally, remove the directory IF empty
    /bin/rmdir "$destPath"
    exit 1
    InstallNetBootClientHelper()
    local tempDir="${1}"
    local destDir="${mountPoint}/Packages/Extras"
    local opt=""
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    opt="-v"
    fi
    if [ -e "${tempDir}/bindingNames.plist" ]; then
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    echo "Installing Directory Service binding information"
    fi
    /usr/bin/ditto $opt "${tempDir}/bindingNames.plist" "${destDir}/bindingNames.plist" || return 1
    /usr/sbin/chown root:wheel "${destDir}/bindingNames.plist"
    /bin/chmod 644 "${destDir}/bindingNames.plist"
    fi
    if [ -e "${tempDir}/sharingNames.plist" ]; then
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    echo "Installing Sharing Names support"
    fi
    /usr/bin/ditto $opt "${tempDir}/sharingNames.plist" "${destDir}/sharingNames.plist" || return 1
    /usr/sbin/chown root:wheel "${destDir}/sharingNames.plist"
    /bin/chmod 644 "${destDir}/sharingNames.plist"
    fi
    # This is required, make sure it's here
    /usr/bin/ditto $opt "${tempDir}/NetBootClientHelper" "${destDir}/NetBootClientHelper" || return 1
    /usr/sbin/chown root:wheel "${destDir}/NetBootClientHelper"
    /bin/chmod 555 "${destDir}/NetBootClientHelper"
    /usr/bin/ditto $opt "${tempDir}/com.apple.NetBootClientHelper.plist" "${destDir}/com.apple.NetBootClientHelper.plist" || return 1
    /usr/sbin/chown root:wheel "${destDir}/com.apple.NetBootClientHelper.plist"
    /bin/chmod 644 "${destDir}/com.apple.NetBootClientHelper.plist"
    /usr/bin/ditto $opt "${tempDir}/installClientHelper.sh" "${mountPoint}/var/tmp/niu/postinstall/installClientHelper.sh" || return 1
    /usr/sbin/chown root:wheel "${mountPoint}/var/tmp/niu/postinstall/installClientHelper.sh"
    /bin/chmod 555 "${mountPoint}/var/tmp/niu/postinstall/installClientHelper.sh"
    return 0
    InstallBaseSystemToShell()
    local baseSystemDMG="${1}"
    local shellMount="${2}"
    local tempDir=`/usr/bin/dirname "${1}"`
    local opt=""
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ] ; then
    opt="-v"
    echo "Copying Base System bits to the boot shell image"
    fi
    baseMount=`mktemp -d "/tmp/mnt_bs.XXXXXXXX"`
    /usr/bin/hdiutil attach "${baseSystemDMG}" -noverify -owners on -nobrowse -noautoopen -mountpoint "${baseMount}" -quiet || return 1
    # Copy the boot.efi and SystemVersion.plist out to the shell dmg
    /usr/bin/ditto $opt "${baseMount}/System/Library/CoreServices/boot.efi" "${shellMount}/boot.efi" || return 1
    chflags nouchg "${shellMount}/boot.efi"
    /bin/mkdir -p "${shellMount}/usr/standalone/i386" || return 1
    /bin/ln "${shellMount}/boot.efi" "${shellMount}/usr/standalone/i386/boot.efi" || return 1
    /bin/mkdir -p "${shellMount}/System/Library/CoreServices" || return 1
    /bin/ln "${shellMount}/boot.efi" "${shellMount}/System/Library/CoreServices/boot.efi" || return 1
    /usr/bin/ditto $opt "${baseMount}/System/Library/CoreServices/SystemVersion.plist" "${shellMount}/System/Library/CoreServices/SystemVersion.plist" || return 1
    # stash some things we need for later
    /usr/bin/ditto $opt "${baseMount}/System/Library/Caches/com.apple.kext.caches/Startup/kernelcache" "${tempDir}/kernelcache" || return 1
    /usr/bin/ditto $opt "${baseMount}/System/Library/CoreServices/com.apple.recovery.boot/PlatformSuppo rt.plist" "${tempDir}/PlatformSupport.plist" || return 1
    # Clean up
    /usr/bin/hdiutil detach "${baseMount}" || retry_hdiutil_detach "${baseMount}" || return 1
    /bin/rmdir "${baseMount}"
    theDmg=`basename "${baseSystemDMG}"`
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ] ; then
    echo "Copying ${theDmg} to the boot shell."
    fi
    /usr/bin/ditto $debug_opt "${baseSystemDMG}" "${shellMount}/${theDmg}"
    return 0
    # Set up for script debugging
    debug_opt=""
    + debug_opt=
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ] ; then
    debug_opt="-v"
    fi
    + '[' DEBUG == VERBOSE -o DEBUG == DEBUG ']'
    + debug_opt=-v
    # Prepare the destination
    CreateOrValidatePath "${destPath}" || crfsErrExit
    + CreateOrValidatePath '/Users/morgan/Desktop/NetRestore of Macintosh HD_2.nbi'
    + local 'targetDir=/Users/morgan/Desktop/NetRestore of Macintosh HD_2.nbi'
    + '[' '!' -d '/Users/morgan/Desktop/NetRestore of Macintosh HD_2.nbi' ']'
    + '[' DEBUG == VERBOSE -o DEBUG == DEBUG ']'
    + echo 'Creating working path at /Users/morgan/Desktop/NetRestore of Macintosh HD_2.nbi'
    Creating working path at /Users/morgan/Desktop/NetRestore of Macintosh HD_2.nbi
    + /bin/mkdir -p '/Users/morgan/Desktop/NetRestore of Macintosh HD_2.nbi'
    # Source in our image building commands
    . "${1}/buildCommands.sh"
    + . /tmp/niutemp.rDvE48RI/buildCommands.sh
    '/System/Library/CoreServices/System Image Utility.app/Contents/Library/Automator/Create Image.action/Contents/Resources/asrFromVolume.sh' "/tmp/niutemp.rDvE48RI" "/Volumes/Macintosh HD" "System" || exit 1
    ++ '/System/Library/CoreServices/System Image Utility.app/Contents/Library/Automator/Create Image.action/Contents/Resources/asrFromVolume.sh' /tmp/niutemp.rDvE48RI '/Volumes/Macintosh HD' System
    progressPrefix="_progress"
    ++ progressPrefix=_progress
    scriptsDebugKey="DEBUG"
    ++ scriptsDebugKey=DEBUG
    imageIsUDIFKey="1"
    ++ imageIsUDIFKey=1
    imageFormatKey="UDZO"
    ++ imageFormatKey=UDZO
    mountPoint=""
    ++ mountPoint=
    ownershipInfoKey="501:20"
    ++ ownershipInfoKey=501:20
    blockCopyDeviceKey="0"
    ++ blockCopyDeviceKey=0
    dmgTarget="NetInstall"
    ++ dmgTarget=NetInstall
    potentialRecoveryDevice="disk4s3"
    ++ potentialRecoveryDevice=disk4s3
    asrSource="ASRInstall.pkg"
    ++ asrSource=ASRInstall.pkg
    destPath="/Users/morgan/Desktop/NetRestore of Macintosh HD_2.nbi"
    ++ destPath='/Users/morgan/Desktop/NetRestore of Macintosh HD_2.nbi'
    skipReorderingKey="0"
    ++ skipReorderingKey=0
    sourceVol="/Volumes/Macintosh HD"
    ++ sourceVol='/Volumes/Macintosh HD'
    postInstallHelperKey="1"
    ++ postInstallHelperKey=1
    # variables we will need
    created_dest="NO"
    + created_dest=NO
    afvErrExit()
    echo "Execution of '`basename \"${0}\"`' failed. Cleaning up."
    # detach the disk and remove the mount folder
    if [ "${created_dest}" == "YES" ]; then
    /bin/rm -r "${destPath}"
    fi
    exit 1
    retrieveBaseSystemDMG()
    local tempDir="${1}"
    local opt=""
    if [ "${potentialRecoveryDevice}" != "" ]; then
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ] ; then
    echo "Retrieving BaseSystem bits from Recovery HD"
    opt="-v"
    fi
    recoveryMount=`mktemp -d "/tmp/mnt_rp.XXXXXXXX"`
    /usr/sbin/diskutil mount readOnly -mountPoint "${recoveryMount}" "${potentialRecoveryDevice}" || return 1
    # Now make sure this is what was expected
    if [ -e "${recoveryMount}/com.apple.recovery.boot/BaseSystem.dmg" ]; then
    /usr/bin/ditto $opt "${recoveryMount}/com.apple.recovery.boot/BaseSystem.dmg" "${tempDir}/BaseSystem.dmg" || return 1
    /usr/bin/ditto $opt "${recoveryMount}/com.apple.recovery.boot/BaseSystem.chunklist" "${tempDir}/BaseSystem.chunklist"
    fi
    /usr/sbin/diskutil unmount "${potentialRecoveryDevice}" || return 1
    /bin/rmdir "${recoveryMount}"
    fi
    return 0
    # Insure the working path (dmg destination) exists
    if [ ! -d "${destPath}" ]; then
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    echo "Creating working path at ${destPath}"
    fi
    /bin/mkdir -p "${destPath}" || afvErrExit
    created_dest="YES"
    fi
    + '[' '!' -d '/Users/morgan/Desktop/NetRestore of Macintosh HD_2.nbi' ']'
    # If the volume source is the boot drive we have an asr:// type source
    if [ "${2}" == "/" ]; then
    # Create an empty image to skip the ASR volume creation
    /usr/bin/touch "${destPath}/${3}.dmg"
    # Set aside the needed BaseSystem.dmg
    retrieveBaseSystemDMG "${1}" || afvErrExit
    fi
    + '[' '/Volumes/Macintosh HD' == / ']'
    # Look for an existing System.dmg
    if [ ! -e "${destPath}/${3}.dmg" ]; then
    # Didn't find one, so create it from volume source
    ${1}/makeNetRestoreFromItem.sh "${1}" "${2}" "${3}" || afvErrExit
    fi
    + '[' '!' -e '/Users/morgan/Desktop/NetRestore of Macintosh HD_2.nbi/System.dmg' ']'
    + /tmp/niutemp.rDvE48RI/makeNetRestoreFromItem.sh /tmp/niutemp.rDvE48RI '/Volumes/Macintosh HD' System
    progressPrefix="_progress"
    ++ progressPrefix=_progress
    scriptsDebugKey="DEBUG"
    ++ scriptsDebugKey=DEBUG
    imageIsUDIFKey="1"
    ++ imageIsUDIFKey=1
    imageFormatKey="UDZO"
    ++ imageFormatKey=UDZO
    mountPoint=""
    ++ mountPoint=
    ownershipInfoKey="501:20"
    ++ ownershipInfoKey=501:20
    blockCopyDeviceKey="0"
    ++ blockCopyDeviceKey=0
    dmgTarget="NetInstall"
    ++ dmgTarget=NetInstall
    potentialRecoveryDevice="disk4s3"
    ++ potentialRecoveryDevice=disk4s3
    asrSource="ASRInstall.pkg"
    ++ asrSource=ASRInstall.pkg
    destPath="/Users/morgan/Desktop/NetRestore of Macintosh HD_2.nbi"
    ++ destPath='/Users/morgan/Desktop/NetRestore of Macintosh HD_2.nbi'
    skipReorderingKey="0"
    ++ skipReorderingKey=0
    sourceVol="/Volumes/Macintosh HD"
    ++ sourceVol='/Volumes/Macintosh HD'
    postInstallHelperKey="1"
    ++ postInstallHelperKey=1
    . "${1}/createCommon.sh"
    + . /tmp/niutemp.rDvE48RI/createCommon.sh
    # createCommon.sh
    # Common functionality for the Image creation process.
    # sourced in by the various SIU scripts
    # Copyright © 2007-2012 Apple Inc. All rights reserved.
    # Using dscl, create a user account
    AddLocalUser()
    # $1 volume whose local node database to modify
    # $2 long name
    # $3 short name
    # $4 isAdminUser key
    # $5 password data
    # $6 password hint
    # $7 user picture path
    # $8 Language string
    local databasePath="/Local/Default/Users/${3}"
    local targetVol="${1}"
    # Find a free UID between 501 and 599
    for ((i=501; i<600; i++)); do
    output=`/usr/bin/dscl -f "${targetVol}/var/db/dslocal/nodes/Default" localonly -search /Local/Default/Users UniqueID $i`
    # If there is already an account dscl returns it, so we're looking for an empty return value.
    if [ "$output" == "" ]; then
    break
    fi
    done
    # Create the user record
    /usr/bin/dscl -f "${targetVol}/var/db/dslocal/nodes/Default" localonly -create $databasePath
    if [ $? != 0 ]; then
    echo "Failed to create '${databasePath}'."
    return 1
    fi
    # Add long name
    /usr/bin/dscl -f "${targetVol}/var/db/dslocal/nodes/Default" localonly -append $databasePath RealName "${2}"
    if [ $? != 0 ]; then
    echo "Failed to set the RealName."
    return 1
    fi
    # Set up the users group information
    /usr/bin/dscl -f "${targetVol}/var/db/dslocal/nodes/Default" localonly -append $databasePath PrimaryGroupID 20
    if [ $? != 0 ]; then
    echo "Failed to set the PrimaryGroupID."
    return 1
    fi
    # Add some additional stuff if the user is an admin
    if [ "${4}" == 1 ]; then
    /usr/bin/dscl -f "${targetVol}/var/db/dslocal/nodes/Default" localonly -append "/Local/Default/Groups/admin" GroupMembership "${3}"
    if [ $? != 0 ]; then
    echo "Failed to add the user to the admin group."
    return 1
    fi
    /usr/bin/dscl -f "${targetVol}/var/db/dslocal/nodes/Default" localonly -append "/Local/Default/Groups/_appserveradm" GroupMembership "${3}"
    if [ $? != 0 ]; then
    echo "Failed to add the user to the _appserveradm group."
    return 1
    fi
    /usr/bin/dscl -f "${targetVol}/var/db/dslocal/nodes/Default" localonly -append "/Local/Default/Groups/_appserverusr" GroupMembership "${3}"
    if [ $? != 0 ]; then
    echo "Failed to add the user to the _appserverusr group."
    return 1
    fi
    fi
    # Add UniqueID
    /usr/bin/dscl -f "${targetVol}/var/db/dslocal/nodes/Default" localonly -append $databasePath UniqueID ${i}
    if [ $? != 0 ]; then
    echo "Failed to set the UniqueID."
    return 1
    fi
    # Add Home Directory entry
    /usr/bin/dscl -f "${targetVol}/var/db/dslocal/nodes/Default" localonly -append $databasePath NFSHomeDirectory /Users/${3}
    if [ $? != 0 ]; then
    echo "Failed to set the NFSHomeDirectory."
    fi
    if [ "${6}" != "" ]; then
    /usr/bin/dscl -f "${targetVol}/var/db/dslocal/nodes/Default" localonly -append $databasePath AuthenticationHint "${6}"
    if [ $? != 0 ]; then
    echo "Failed to set the AuthenticationHint."
    return 1
    fi
    fi
    /usr/bin/dscl -f "${targetVol}/var/db/dslocal/nodes/Default" localonly -append $databasePath picture "${7}"
    if [ $? != 0 ]; then
    echo "Failed to set the picture."
    return 1
    fi
    /usr/bin/dscl -f "${targetVol}/var/db/dslocal/nodes/Default" localonly -passwd $databasePath "${5}"
    if [ $? != 0 ]; then
    echo "Failed to set the passwd."
    return 1
    fi
    # Add shell
    /usr/bin/dscl -f "${targetVol}/var/db/dslocal/nodes/Default" localonly -append $databasePath UserShell "/bin/bash"
    if [ $? != 0 ]; then
    echo "Failed to set the UserShell."
    return 1
    fi
    # Create Home directory
    if [ -e "/System/Library/User Template/${8}.lproj/" ]; then
    /usr/bin/ditto "/System/Library/User Template/${8}.lproj/" "${targetVol}/Users/${3}"
    else
    /usr/bin/ditto "/System/Library/User Template/English.lproj/" "${targetVol}/Users/${3}"
    fi
    if [ $? != 0 ]; then
    echo "Failed to copy the User Template."
    return 1
    fi
    /usr/sbin/chown -R $i:$i "${targetVol}/Users/${3}"
    if [ $? != 0 ]; then
    echo "Failed to set ownership on the User folder."
    return 1
    fi
    # Copies a list of files (full paths contained in the file at $1) from source to the path specified in $2
    CopyEntriesFromFileToPath()
    local theFile="$1"
    local theDest="$2"
    local opt=""
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    opt="-v"
    fi
    while read FILE
    do
    if [ -e "${FILE}" ]; then
    local leafName=`basename "${FILE}"`
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    echo "Copying ${FILE}."
    fi
    /usr/bin/ditto $opt "${FILE}" "${theDest}/${leafName}" || return 1
    fi
    done < "${theFile}"
    return 0
    # Copies a list of packages (full path, destination pairs contained in the file at $1) from source to .../System/Installation/Packages/
    CopyPackagesWithDestinationsFromFile()
    local theFile="$1"
    local opt=""
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    opt="-v"
    fi
    while read FILE
    do
    if [ -e "${FILE}" ]; then
    local leafName=`basename "${FILE}"`
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    echo "Copying ${FILE}."
    fi
    read SUB_PATH
    /usr/bin/ditto $opt "${FILE}" "${mountPoint}/Packages/${SUB_PATH}${leafName}" || return 1
    fi
    done < "${theFile}"
    return 0
    # Create an installer package in ${1} wrapping the supplied script ${2}
    CreateInstallPackageForScript()
    local tempDir="$1"
    local scriptPath="$2"
    local scriptName=`basename "${scriptPath}"`
    local entryDir=`pwd`
    local opt=""
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    echo "Create installer for script ${scriptName}"
    opt="-v"
    fi
    # shouldn't exist on entry...
    if [ -e "${tempDir}/emptyDir" ]; then
    /bin/rm -rf "${tempDir}/emptyDir"
    fi
    # make some directories to work in
    /bin/mkdir $opt -p "${tempDir}/${scriptName}.pkg/Contents/Resources" || return 1
    /bin/mkdir $opt "${tempDir}/emptyDir" || return 1
    # Create Archive.pax.gz
    cd "${tempDir}/emptyDir"
    /bin/pax -w -x cpio -f "${tempDir}/${scriptName}.pkg/Contents/Archive.pax" .
    /usr/bin/gzip "${tempDir}/${scriptName}.pkg/Contents/Archive.pax"
    cd "${entryDir}"
    # Create the Archive.bom file
    /usr/bin/mkbom "${tempDir}/emptyDir/" "${tempDir}/${scriptName}.pkg/Contents/Archive.bom" || return 1
    # Create the Info.plist
    /bin/cat > "${tempDir}/${scriptName}.pkg/Contents/Info.plist" << END
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
    <key>CFBundleIdentifier</key>
    <string>com.apple.SystemImageUtility.${scriptName}</string>
    <key>CFBundleShortVersionString</key>
    <string>1</string>
    <key>IFMajorVersion</key>
    <integer>1</integer>
    <key>IFMinorVersion</key>
    <integer>0</integer>
    <key>IFPkgFlagDefaultLocation</key>
    <string>/tmp</string>
    <key>IFPkgFlagInstallFat</key>
    <false/>
    <key>IFPkgFlagIsRequired</key>
    <false/>
    <key>IFPkgFormatVersion</key>
    <real>0.10000000149011612</real>
    </dict>
    </plist>
    END
    echo "pkmkrpkg1" > "${tempDir}/${scriptName}.pkg/Contents/PkgInfo"
    echo "major: 1\nminor: 0" > "${tempDir}/${scriptName}.pkg/Contents/Resources/package_version"
    # Copy the script
    /bin/cp "$scriptPath" "${tempDir}/${scriptName}.pkg/Contents/Resources/postflight"
    # clean up
    /bin/rm -r "${tempDir}/emptyDir"
    return 0
    # Validate or create the requested directory
    CreateOrValidatePath()
    local targetDir="$1"
    if [ ! -d "${targetDir}" ]; then
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    echo "Creating working path at ${targetDir}"
    fi
    /bin/mkdir -p "${targetDir}" || return 1
    fi
    # If any exist, apply any user accounts
    CreateUserAccounts()
    # $1 volume whose local node database to modify
    local count="${#userFullName[*]}"
    local targetVol="${1}"
    if [ $count -gt 0 ]; then
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    echo "Adding $count user account(s) to the image"
    fi
    for ((index=0; index<$count; index++)); do
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    echo "Adding user ${userFullName[$index]}"
    fi
    #lay down user here
    AddLocalUser "${targetVol}" "${userFullName[$index]}" "${userUnixName[$index]}" "${userIsAdmin[$index]}" "${userPassword[$index]}" "${userPassHint[$index]}" "${userImagePath[$index]}" "${userLanguage[$index]}"
    if [ $? != 0 ]; then
    echo "Failed to create the User '${userUnixName[$index]}'."
    return 1
    fi
    #suppress the Apple ID request
    DisableAppleIDRequestForUser "${targetVol}" "${userUnixName[$index]}"
    done
    # "touch"
    /usr/bin/touch "${targetVol}/private/var/db/.AppleSetupDone"
    /usr/bin/touch "${targetVol}/Library/Receipts/.SetupRegComplete"
    fi
    # retry the hdiutil detach until we either time out or it succeeds
    retry_hdiutil_detach()
    local mount_point="${1}"
    local tries=0
    local forceAt=0
    local limit=24
    local opt=""
    forceAt=$(($limit - 1))
    while [ $tries -lt $limit ]; do
    tries=$(( tries + 1 ))
    /bin/sleep 5
    echo "Attempting to detach the disk image again..."
    /usr/bin/hdiutil detach "${mount_point}" $opt
    if [ $? -ne 0 ]; then
    # Dump a list of any still open files on the mountPoint
    if [ "${scriptsDebugKey}" == "DEBUG" ]; then
    /usr/sbin/lsof +fg "${mount_point}"
    fi
    if [ $tries -eq $forceAt ]; then
    echo "Failed to detach disk image at '${mount_point}' normally, adding -force."
    opt="-force"
    fi
    if [ $tries -eq $limit ]; then
    echo "Failed to detach disk image at '${mount_point}'."
    exit 1
    fi
    else
    tries=$limit
    fi
    done
    # Create the dyld shared cache files
    DetachAndRemoveMount()
    local theMount="${1}"
    local mountLoc=`mount | grep "${theMount}"`
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    echo "Detaching disk image"
    # Dump a list of any still open files on the mountPoint
    if [ "${scriptsDebugKey}" == "DEBUG" ]; then
    /usr/sbin/lsof +fg "${theMount}"
    fi
    fi
    # Finally detach the mount (if it's actually mounted) and dispose the mountPoint directory
    if [ "${mountLoc}" != "" ]; then
    /usr/bin/hdiutil detach "${theMount}" || retry_hdiutil_detach "${theMount}" || return 1
    fi
    /bin/rmdir "${theMount}" || return 1
    return 0
    # Turn off the Apple ID request that happens on first boot after installing the OS
    DisableAppleIDRequestForUser()
    local targetUserLib="${1}/Users/${2}/Library"
    # Only do this if the file doesn't exist
    if [ ! -e "${targetUserLib}/Preferences/com.apple.SetupAssistant.plist" ]; then
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    echo "Disabling Apple ID request for user '${2}'"
    fi
    /usr/libexec/PlistBuddy -c "Add :DidSeeCloudSetup bool 1" "${targetUserLib}/Preferences/com.apple.SetupAssistant.plist" > /dev/null 2>&1
    /usr/libexec/PlistBuddy -c "Add :LastSeenCloudProductVersion string 10.8" "${targetUserLib}/Preferences/com.apple.SetupAssistant.plist" > /dev/null 2>&1
    fi
    return 0
    # If the pieces exist, enable remote access for the shell image
    EnableRemoteAccess()
    local srcVol="${1}"
    local opt=""
    if [ -e "${srcVol}/usr/lib/pam/pam_serialnumber.so.2" ]; then
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    echo "Enabling shell image remote access support"
    opt="-v"
    fi
    # install some things (again which aren't part of BaseSystem) needed for remote ASR installs
    /usr/bin/ditto $opt "${srcVol}/usr/lib/pam/pam_serialnumber.so.2" "${mountPoint}/usr/lib/pam/pam_serialnumber.so.2" || return 1
    if [ -e "${srcVol}/usr/sbin/installer" ]; then
    /usr/bin/ditto $opt "${srcVol}/usr/sbin/installer" "${mountPoint}/usr/sbin/installer" || return 1
    fi
    # copy the sshd config and add our keys to the end of it
    if [ -e "${srcVol}/etc/sshd_config" ]; then
    /bin/cat "${srcVol}/etc/sshd_config" - > "${mountPoint}/etc/sshd_config" << END
    HostKey /private/var/tmp/ssh_host_key
    HostKey /private/var/tmp/ssh_host_rsa_key
    HostKey /private/var/tmp/ssh_host_dsa_key
    END
    fi
    fi
    return 0
    # If it exists, install the sharing names and/or directory binding support to the install image
    HandleNetBootClientHelper()
    local tempDir="${1}"
    local targetVol="${2}"
    local opt=""
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    opt="-v"
    fi
    if [ -e  "${tempDir}/bindingNames.plist" ]; then
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    echo "Installing Directory Service binding information"
    fi
    /usr/bin/ditto $opt "${tempDir}/bindingNames.plist" "${targetVol}/etc/bindingNames.plist" || return 1
    /usr/sbin/chown root:wheel "${targetVol}/etc/bindingNames.plist"
    /bin/chmod 644 "${targetVol}/etc/bindingNames.plist"
    fi
    if [ -e  "${tempDir}/sharingNames.plist" ]; then
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    echo "Installing Sharing Names support"
    fi
    /usr/bin/ditto $opt "${tempDir}/sharingNames.plist" "${targetVol}/etc/sharingNames.plist" || return 1
    /usr/sbin/chown root:wheel "${targetVol}/etc/sharingNames.plist"
    /bin/chmod 644 "${targetVol}/etc/sharingNames.plist"
    fi
    if [ -e  "${tempDir}/NetBootClientHelper" ]; then
    /usr/bin/ditto $opt "${tempDir}/NetBootClientHelper" "${targetVol}/usr/sbin/NetBootClientHelper" || return 1
    /usr/sbin/chown root:wheel "${targetVol}/usr/sbin/NetBootClientHelper"
    /bin/chmod 555 "${targetVol}/usr/sbin/NetBootClientHelper"
    /usr/bin/ditto $opt "${tempDir}/com.apple.NetBootClientHelper.plist" "${targetVol}/System/Library/LaunchDaemons/com.apple.NetBootClientHelper.plist" || return 1
    /usr/sbin/chown root:wheel "${targetVol}/System/Library/LaunchDaemons/com.apple.NetBootClientHelper.plist"
    /bin/chmod 644 "${targetVol}/System/Library/LaunchDaemons/com.apple.NetBootClientHelper.plist"
    # finally, make sure it isn't disabled...
    /usr/libexec/PlistBuddy -c "Delete :com.apple.NetBootClientHelper" "${targetVol}/var/db/launchd.db/com.apple.launchd/overrides.plist" > /dev/null 2>&1
    fi
    return 0
    # If any exist, install configuration profiles to the install image
    InstallConfigurationProfiles()
    local tempDir="${1}"
    local targetVol="${2}"
    local profilesDir="${targetVol}/var/db/ConfigurationProfiles"
    if [ -e  "${tempDir}/configProfiles.txt" ]; then
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    echo "Installing Configuration Profiles"
    fi
    /bin/mkdir -p "${profilesDir}/Setup" || return 1
    # Make sure the perms are correct
    /usr/sbin/chown root:wheel "${profilesDir}"
    /bin/chmod 755 "${profilesDir}"
    /usr/sbin/chown root:wheel "${profilesDir}/Setup"
    /bin/chmod 755 "${profilesDir}/Setup"
    /usr/bin/touch "${profilesDir}/.profilesAreInstalled"
    CopyEntriesFromFileToPath "${tempDir}/configProfiles.txt" "${profilesDir}/Setup" || return 1
    # Enable MCX debugging
    if [ 1 == 1 ]; then
    if [ -e  "${targetVol}/Library/Preferences/com.apple.MCXDebug.plist" ]; then
    /usr/libexec/PlistBuddy -c "Delete :debugOutput" "${targetVol}/Library/Preferences/com.apple.MCXDebug.plist" > /dev/null 2>&1
    /usr/libexec/PlistBuddy -c "Delete :collateLogs" "${targetVol}/Library/Preferences/com.apple.MCXDebug.plist" > /dev/null 2>&1
    fi
    /usr/libexec/PlistBuddy -c "Add :debugOutput string -2" "${targetVol}/Library/Preferences/com.apple.MCXDebug.plist" > /dev/null 2>&1
    /usr/libexec/PlistBuddy -c "Add :collateLogs string 1" "${targetVol}/Library/Preferences/com.apple.MCXDebug.plist" > /dev/null 2>&1
    fi
    fi
    # Converts a list of scripts (full paths contained in the file at $1) into packages in $3
    InstallScriptsFromFile()
    local tempDir="${1}"
    local theFile="${2}"
    local targetDir="${3}"
    local opt=""
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    echo "Converting scripts into install packages"
    opt="-v"
    fi
    while read FILE
    do
    if [ -e "${FILE}" ]; then
    # make an installer package out of the script
    CreateInstallPackageForScript "$tempDir" "${FILE}" || return 1
    # copy the resulting package to the Packages directory
    local leafName=`basename "${FILE}"`
    /usr/bin/ditto $opt "${tempDir}/${leafName}.pkg" "${targetDir}/${leafName}.pkg" || return 1
    # clean up
    /bin/rm -r "${tempDir}/${leafName}.pkg"
    fi
    done < "${theFile}"
    return 0
    # Prepare the source by deleting stuff we don't want to copy if sourcing a volume
    PostFlightDestination()
    local tempDir="${1}"
    local destDir="${2}"
    local opt=""
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    echo "Performing post install cleanup"
    opt="-v"
    fi
    # delete the DS indices to force reindexing...
    if [ -e "${mountPoint}/var/db/dslocal/indices/Default/index" ]; then
    /bin/rm $opt "${mountPoint}/var/db/dslocal/indices/Default/index"
    fi
    # detach the disk and remove the mount folder
    DetachAndRemoveMount "${mountPoint}"
    if [ $? != 0 ]; then
    echo "Failed to detach and clean up the mount at '${mountPoint}'."
    return 1
    fi
    echo "Correcting permissions. ${ownershipInfoKey} $destDir"
    /usr/sbin/chown -R "${ownershipInfoKey}" "$destDir"
    # Prepare the source by deleting stuff we don't want to copy if sourcing a volume
    PreCleanSource()
    local srcVol="$1"
    local opt=""
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    opt="-v"
    fi
    if [ -e "$srcVol/private/var/vm/swapfile*" ]; then
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    echo "Removing swapfiles on $1"
    fi
    /bin/rm $opt "$srcVol/private/var/vm/swapfile*"
    fi
    if [ -e "$srcVol/private/var/vm/sleepimage" ]; then
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    echo "Removing sleepimage on $1"
    fi
    /bin/rm $opt "$srcVol/private/var/vm/sleepimage"
    fi
    if [ -d "$srcVol/private/tmp" ]; then
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    echo "Cleaning out /private/tmp on $1"
    fi
    /bin/rm -r $opt "$srcVol/private/tmp/*" > /dev/null 2>&1
    fi
    if [ -d "$srcVol/private/var/tmp" ]; then
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    echo "Cleaning out /private/var/tmp on $1"
    fi
    /bin/rm -r $opt "$srcVol/private/var/tmp/*" > /dev/null 2>&1
    fi
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    echo "Cleaning out devices and volumes on $1"
    fi
    if [ -d "$srcVol/Volumes" ]; then
    /bin/rm -r $opt "$srcVol/Volumes/*" > /dev/null 2>&1
    fi
    if [ -d "$srcVol/dev" ]; then
    /bin/rm $opt "$srcVol/dev/*" > /dev/null 2>&1
    fi
    if [ -d "$srcVol/private/var/run" ]; then
    /bin/rm -r $opt "$srcVol/private/var/run/*" > /dev/null 2>&1
    fi
    # Copy kernel and build the kext cache on the boot image
    PrepareKernelAndKextCache()
    local srcDir="$1"
    local destDir="$2"
    local opt=""
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    echo "Preparing the kernel and kext cache for the boot image"
    opt="-v"
    fi
    # Insure the kext cache on our source volume (the boot shell) is up to date
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    echo "Updating kext cache on source volume"
    fi
    /usr/sbin/kextcache -update-volume "${srcDir}" || return 1
    # Copy the i386 and, if it exists, the x86_64 architecture
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ]; then
    echo "Installing the kext cache to the boot image"
    fi
    # make sure this doesn't exist
    if [ -e "${destDir}/i386" ]; then
    /bin/rm -rf "${destDir}/i386"
    fi
    # Install kextcaches to the nbi folder

    After running your command, and using the mounted image as my source for creating the NetRestore image, SIU was able to complete the first two steps, but failed on the rest.  It was able to complete "Creating Image From Source", and "Preparing Image For Restore", but it fails on "Creating Bootable System".
    I've copied and pasted the end of the error log.  Any idea what caused the Bootable System from successfully being created?
    PERCENT:-1.000000
    Finalizing disk image.
    created: /Users/morgan/Desktop/30sept.nbi/System.dmg
    # Set aside the needed BaseSystem.dmg
    retrieveBaseSystemDMG "${1}" || mnrfiErrExit
    + retrieveBaseSystemDMG /tmp/niutemp.3PZq4yzF
    + local tempDir=/tmp/niutemp.3PZq4yzF
    + local opt=
    + '[' disk2s3 '!=' '' ']'
    + '[' DEBUG == VERBOSE -o DEBUG == DEBUG ']'
    + opt=-v
    + echo 'Retrieving BaseSystem bits from Recovery HD'
    Retrieving BaseSystem bits from Recovery HD
    mktemp -d "/tmp/mnt_rp.XXXXXXXX"
    ++ mktemp -d /tmp/mnt_rp.XXXXXXXX
    + recoveryMount=/tmp/mnt_rp.75pVTRHs
    + /usr/sbin/diskutil mount readOnly -mountPoint /tmp/mnt_rp.75pVTRHs disk2s3
    Volume Recovery HD on disk2s3 mounted
    + '[' -e /tmp/mnt_rp.75pVTRHs/com.apple.recovery.boot/BaseSystem.dmg ']'
    + /usr/sbin/diskutil unmount disk2s3
    Volume Recovery HD on disk2s3 unmounted
    + /bin/rmdir /tmp/mnt_rp.75pVTRHs
    + return 0
    # update progress information
    echo "${progressPrefix}_preparingASR_"
    + echo _progress_preparingASR_
    # "Scan the image for restore"
    asr_opt=""
    + asr_opt=
    if [ "${skipReorderingKey}" == 1 ] ; then
    asr_opt="--nostream"
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ] ; then
    echo "Preparing image for restore without multicast reordering"
    fi
    else
    if [ "${scriptsDebugKey}" == "VERBOSE" -o "${scriptsDebugKey}" == "DEBUG" ] ; then
    echo "Preparing image for restore"
    fi
    fi
    + '[' 0 == 1 ']'
    + '[' DEBUG == VERBOSE -o DEBUG == DEBUG ']'
    + echo 'Preparing image for restore'
    Preparing image for restore
    /usr/sbin/asr imagescan --source "${destPath}/${dmgContainer}.dmg" $asr_opt || mnrfiErrExit
    + /usr/sbin/asr imagescan --source /Users/morgan/Desktop/30sept.nbi/System.dmg
    Checksumming partition of size 63 blocks...done
    Block checksum: ....10....20....30....40....50....60....70....80....90....100
    Reordering:     ....10....20....30....40....50....60....70....80....90....100asr: successfully scanned image "/Users/morgan/Desktop/30sept.nbi/System.dmg"
    # update progress information
    echo "${progressPrefix}_creatingInstallSystem_"
    + echo _progress_creatingInstallSystem_
    restoreSource="${sourceVol}"
    + restoreSource='/Volumes/Macintosh HD'
    # If this is a restore from install media, mount that as our source
    if [ "${restoreSource}" == "(installMedia)" ] ; then
    sourceMount=`mktemp -d "/tmp/mnt_src.XXXXXXXX"`
    /usr/bin/hdiutil attach "${destPath}/System.dmg" -noverify -owners on -nobrowse -noautoopen -mountpoint "${sourceMount}" -quiet || crfsErrExit
    restoreSource="${sourceMount}"
    fi
    + '[' '/Volumes/Macintosh HD' == '(installMedia)' ']'
    # If we don't have a BaseSystem.dmg available to us fail now.
    if [ ! -e "${1}/BaseSystem.dmg" ]; then
    echo "There is no BaseSystem.dmg (Recovery HD) associated with the source ${restoreSource}."
    crfsErrExit
    fi
    + '[' '!' -e /tmp/niutemp.3PZq4yzF/BaseSystem.dmg ']'
    + echo 'There is no BaseSystem.dmg (Recovery HD) associated with the source /Volumes/Macintosh HD.'
    There is no BaseSystem.dmg (Recovery HD) associated with the source /Volumes/Macintosh HD.
    + crfsErrExit
    basename "${0}"
    ++ basename '/System/Library/CoreServices/System Image Utility.app/Contents/Library/Automator/Create Image.action/Contents/Resources/createRestoreFromSources.sh'
    + echo 'Execution of '\''createRestoreFromSources.sh'\'' failed. Cleaning up.'
    Execution of 'createRestoreFromSources.sh' failed. Cleaning up.
    + DetachAndRemoveMount /tmp/mnt.nfN5nVgM
    + local theMount=/tmp/mnt.nfN5nVgM
    mount | grep "${theMount}"
    ++ mount
    ++ grep /tmp/mnt.nfN5nVgM
    + local mountLoc=
    + '[' DEBUG == VERBOSE -o DEBUG == DEBUG ']'
    + echo 'Detaching disk image'
    Detaching disk image
    + '[' DEBUG == DEBUG ']'
    + /usr/sbin/lsof +fg /tmp/mnt.nfN5nVgM
    + '[' '' '!=' '' ']'
    + /bin/rmdir /tmp/mnt.nfN5nVgM
    + return 0
    + '[' '' '!=' '' ']'
    + /bin/rm -r /Users/morgan/Desktop/30sept.nbi/i386
    + /bin/rm /Users/morgan/Desktop/30sept.nbi/NetInstall.dmg
    + /bin/rm /Users/morgan/Desktop/30sept.nbi/System.dmg
    + /bin/rmdir /Users/morgan/Desktop/30sept.nbi
    + exit 1
    Script is done.
    Bridge exited with status 256
    Failed to create image from restore source.
    An unknown error has occurred.
    An unknown error has occurred.
    Image creation process finished...
    Stopping image creation.
    Image creation failed.
    Thanks.

  • [SOLVED] Unable to dual boot into Windows 8

    I have an Acer Aspire S3 laptop which came with Windows 8 installed. After following the Beginner's Guide to install Arch alongside Windows, Linux works but Windows fails to boot. When I select Windows from the GRUB menu I get kicked out to rescue mode with a "file not found" error. This is a UEFI-GPT setup and in GRUB rescue I get an "unknown filesystem" error when I try to ls the ESP. In fact I get that error for everything except the two ext4 partitions I created during the Arch install.
    I'll just briefly run down (what I think are) the relevant parts of the installation process, then post the output of Boot Info Script at the end.
    Partitions
    I created three partitions during the installation:
    Swap (/dev/sda6)
    Root (/dev/sda7)
    Home (/dev/sda8)
    The disk already had an EFI System Partition (/dev/sda2) so I used that instead of creating my own, mounting it to /boot as described in the beginner's guide (not /boot/efi as in the GRUB docs - not sure if that makes a difference).
    Boot Loader
    I installed and configured GRUB exactly as described in the beginner's guide:
    # pacman -S grub efibootmgr os-prober
    # grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=arch_grub --recheck
    # grub-mkconfig -o /boot/grub/grub.cfg
    This appeared to work. Os-prober found my Windows OS ("Found Windows Boot Manager on /dev/sda2@/EFI/Microsoft/Boot/bootmgfw.efi") and added a corresponding menuentry to grub.cfg. On discovering that this didn't actually boot, I added a custom Windows entry per the GRUB dual-boot instructions. That didn't work either.
    Boot Info
    Here is the output from boot info script which includes my grub config, partition info, fstab etc. One strange thing is that the script found every boot file on the ESP except the Windows Boot Manager, including leftover files from short-lived installations of Elementary OS and gummiboot. Maybe Windows is the "Unknown BootLoader" mentioned at the end.
    Boot Info Script 0.61 [1 April 2012]
    ============================= Boot Info Summary: ===============================
    => No boot loader is installed in the MBR of /dev/sda.
    => No boot loader is installed in the MBR of /dev/sdb.
    sda1: __________________________________________________________________________
    File system: ntfs
    Boot sector type: Windows Vista/7: NTFS
    Boot sector info: No errors found in the Boot Parameter Block.
    Operating System:
    Boot files:
    sda2: __________________________________________________________________________
    File system: vfat
    Boot sector type: Unknown
    Boot sector info: No errors found in the Boot Parameter Block.
    Operating System:
    Boot files: /grub/grub.cfg /efi/arch_grub/grubx64.efi
    /efi/Boot/bkpbootx64.efi /efi/Boot/bootx64.efi
    /efi/elementary/grubx64.efi
    /efi/gummiboot/gummibootx64.efi
    sda3: __________________________________________________________________________
    File system:
    Boot sector type: -
    Boot sector info:
    Mounting failed: mount: unknown filesystem type ''
    sda4: __________________________________________________________________________
    File system: ntfs
    Boot sector type: Windows Vista/7: NTFS
    Boot sector info: No errors found in the Boot Parameter Block.
    Operating System:
    Boot files: /bootmgr /Windows/System32/winload.exe
    sda5: __________________________________________________________________________
    File system: ntfs
    Boot sector type: Windows Vista/7: NTFS
    Boot sector info: No errors found in the Boot Parameter Block.
    Operating System:
    Boot files:
    sda6: __________________________________________________________________________
    File system: swap
    Boot sector type: -
    Boot sector info:
    sda7: __________________________________________________________________________
    File system: ext4
    Boot sector type: -
    Boot sector info:
    Operating System: Arch Linux ()
    Boot files: /etc/fstab
    sda8: __________________________________________________________________________
    File system: ext4
    Boot sector type: -
    Boot sector info:
    Operating System:
    Boot files:
    sdb1: __________________________________________________________________________
    File system:
    Boot sector type: -
    Boot sector info:
    Mounting failed: mount: unknown filesystem type ''
    mount: unknown filesystem type ''
    sdb2: __________________________________________________________________________
    File system:
    Boot sector type: -
    Boot sector info:
    Mounting failed: mount: unknown filesystem type ''
    mount: unknown filesystem type ''
    mount: unknown filesystem type ''
    ============================ Drive/Partition Info: =============================
    Drive: sda _____________________________________________________________________
    Disk /dev/sda: 500.1 GB, 500107862016 bytes, 976773168 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 4096 bytes
    I/O size (minimum/optimal): 4096 bytes / 4096 bytes
    Partition Boot Start Sector End Sector # of Sectors Id System
    /dev/sda1 1 976,773,167 976,773,167 ee GPT
    GUID Partition Table detected.
    Partition Start Sector End Sector # of Sectors System
    /dev/sda1 2,048 821,247 819,200 Windows Recovery Environment (Windows)
    /dev/sda2 821,248 1,435,647 614,400 EFI System partition
    /dev/sda3 1,435,648 1,697,791 262,144 Microsoft Reserved Partition (Windows)
    /dev/sda4 1,697,792 130,945,023 129,247,232 Data partition (Windows/Linux)
    /dev/sda5 950,145,024 976,773,119 26,628,096 Windows Recovery Environment (Windows)
    /dev/sda6 130,945,024 139,333,631 8,388,608 Swap partition (Linux)
    /dev/sda7 139,333,632 206,442,495 67,108,864 Data partition (Linux)
    /dev/sda8 206,442,496 950,145,023 743,702,528 Data partition (Linux)
    Drive: sdb _____________________________________________________________________
    Disk /dev/sdb: 20.0 GB, 20014718976 bytes, 39091248 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Partition Boot Start Sector End Sector # of Sectors Id System
    /dev/sdb1 1 4,294,967,295 4,294,967,295 ee GPT
    /dev/sdb1 ends after the last sector of /dev/sdb
    GUID Partition Table detected.
    Partition Start Sector End Sector # of Sectors System
    /dev/sdb1 7,839,744 39,090,175 31,250,432 -
    /dev/sdb2 2,048 7,837,695 7,835,648 -
    "blkid" output: ________________________________________________________________
    Device UUID TYPE LABEL
    /dev/sda1 CCAC5E91AC5E75C4 ntfs Recovery
    /dev/sda2 A05F-051D vfat ESP
    /dev/sda3
    /dev/sda4 4218603F18603457 ntfs ACER
    /dev/sda5 8088627C88627118 ntfs Push Button Reset
    /dev/sda6 d4f5415f-f771-4f9c-ba4a-0f639d055360 swap
    /dev/sda7 90d566ac-57d9-475c-9493-14ba0472d832 ext4
    /dev/sda8 8ab4a486-02d8-4cb4-af91-43acac7e81d7 ext4
    /dev/sdb1
    /dev/sdb2
    ================================ Mount points: =================================
    Device Mount_Point Type Options
    /dev/sda2 /boot vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)
    /dev/sda7 / ext4 (rw,relatime,data=ordered)
    /dev/sda8 /home ext4 (rw,relatime,data=ordered)
    ============================= sda2/grub/grub.cfg: ==============================
    # DO NOT EDIT THIS FILE
    # It is automatically generated by grub-mkconfig using templates
    # from /etc/grub.d and settings from /etc/default/grub
    ### BEGIN /etc/grub.d/00_header ###
    insmod part_gpt
    insmod part_msdos
    if [ -s $prefix/grubenv ]; then
    load_env
    fi
    if [ "${next_entry}" ] ; then
    set default="${next_entry}"
    set next_entry=
    save_env next_entry
    set boot_once=true
    else
    set default="0"
    fi
    if [ x"${feature_menuentry_id}" = xy ]; then
    menuentry_id_option="--id"
    else
    menuentry_id_option=""
    fi
    export menuentry_id_option
    if [ "${prev_saved_entry}" ]; then
    set saved_entry="${prev_saved_entry}"
    save_env saved_entry
    set prev_saved_entry=
    save_env prev_saved_entry
    set boot_once=true
    fi
    function savedefault {
    if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
    fi
    function load_video {
    if [ x$feature_all_video_module = xy ]; then
    insmod all_video
    else
    insmod efi_gop
    insmod efi_uga
    insmod ieee1275_fb
    insmod vbe
    insmod vga
    insmod video_bochs
    insmod video_cirrus
    fi
    if [ x$feature_default_font_path = xy ] ; then
    font=unicode
    else
    insmod part_gpt
    insmod ext2
    set root='hd0,gpt7'
    if [ x$feature_platform_search_hint = xy ]; then
    search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt7 --hint-efi=hd0,gpt7 --hint-baremetal=ahci0,gpt7 90d566ac-57d9-475c-9493-14ba0472d832
    else
    search --no-floppy --fs-uuid --set=root 90d566ac-57d9-475c-9493-14ba0472d832
    fi
    font="/usr/share/grub/unicode.pf2"
    fi
    if loadfont $font ; then
    set gfxmode=auto
    load_video
    insmod gfxterm
    set locale_dir=$prefix/locale
    set lang=en_GB
    insmod gettext
    fi
    terminal_input console
    terminal_output gfxterm
    set timeout=5
    ### END /etc/grub.d/00_header ###
    ### BEGIN /etc/grub.d/10_linux ###
    menuentry 'Arch Linux, with Linux core repo kernel' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-core repo kernel-true-90d566ac-57d9-475c-9493-14ba0472d832' {
    load_video
    set gfxpayload=keep
    insmod gzio
    insmod part_gpt
    insmod fat
    set root='hd0,gpt2'
    if [ x$feature_platform_search_hint = xy ]; then
    search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 A05F-051D
    else
    search --no-floppy --fs-uuid --set=root A05F-051D
    fi
    echo 'Loading Linux core repo kernel ...'
    linux /vmlinuz-linux root=UUID=90d566ac-57d9-475c-9493-14ba0472d832 rw quiet
    echo 'Loading initial ramdisk ...'
    initrd /initramfs-linux.img
    menuentry 'Arch Linux, with Linux core repo kernel (Fallback initramfs)' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-core repo kernel-fallback-90d566ac-57d9-475c-9493-14ba0472d832' {
    load_video
    set gfxpayload=keep
    insmod gzio
    insmod part_gpt
    insmod fat
    set root='hd0,gpt2'
    if [ x$feature_platform_search_hint = xy ]; then
    search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 A05F-051D
    else
    search --no-floppy --fs-uuid --set=root A05F-051D
    fi
    echo 'Loading Linux core repo kernel ...'
    linux /vmlinuz-linux root=UUID=90d566ac-57d9-475c-9493-14ba0472d832 rw quiet
    echo 'Loading initial ramdisk ...'
    initrd /initramfs-linux-fallback.img
    ### END /etc/grub.d/10_linux ###
    ### BEGIN /etc/grub.d/20_linux_xen ###
    ### END /etc/grub.d/20_linux_xen ###
    ### BEGIN /etc/grub.d/30_os-prober ###
    menuentry 'Windows Boot Manager (on /dev/sda2)' --class windows --class os $menuentry_id_option 'osprober-efi-A05F-051D' {
    insmod part_gpt
    insmod fat
    set root='hd0,gpt2'
    if [ x$feature_platform_search_hint = xy ]; then
    search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 A05F-051D
    else
    search --no-floppy --fs-uuid --set=root A05F-051D
    fi
    chainloader /EFI/Microsoft/Boot/bootmgfw.efi
    ### END /etc/grub.d/30_os-prober ###
    ### BEGIN /etc/grub.d/40_custom ###
    # This file provides an easy way to add custom menu entries. Simply type the
    # menu entries you want to add after this comment. Be careful not to change
    # the 'exec tail' line above.
    menuentry "Windoze Ate UEFI-GPT" {
    insmod part_gpt
    insmod fat
    insmod search_fs_uuid
    insmod chain
    search --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 A05F-051D
    chainloader /EFI/Microsoft/Boot/bootmgfw.efi
    ### END /etc/grub.d/40_custom ###
    ### BEGIN /etc/grub.d/41_custom ###
    if [ -f ${config_directory}/custom.cfg ]; then
    source ${config_directory}/custom.cfg
    elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; then
    source $prefix/custom.cfg;
    fi
    ### END /etc/grub.d/41_custom ###
    ### BEGIN /etc/grub.d/60_memtest86+ ###
    ### END /etc/grub.d/60_memtest86+ ###
    =================== sda2: Location of files loaded by Grub: ====================
    GiB - GB File Fragment(s)
    =============================== sda7/etc/fstab: ================================
    # /dev/sda7
    UUID=90d566ac-57d9-475c-9493-14ba0472d832 / ext4 rw,relatime 0 1
    # /dev/sda8
    UUID=8ab4a486-02d8-4cb4-af91-43acac7e81d7 /home ext4 rw,relatime 0 2
    # /dev/sda2 LABEL=ESP
    UUID=A05F-051D /boot vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro 0 2
    # /dev/sda6
    UUID=d4f5415f-f771-4f9c-ba4a-0f639d055360 none swap defaults 0 0
    ======================== Unknown MBRs/Boot Sectors/etc: ========================
    Unknown GPT Partiton Type
    5850cbb887c11947baf0379ca2d4c97e
    Unknown GPT Partiton Type
    dee2bfd3af3ddf11ba40e3a556d89593
    Unknown BootLoader on sda2
    00000000 eb 58 90 4d 53 44 4f 53 35 2e 30 00 02 08 5e 1b |.X.MSDOS5.0...^.|
    00000010 02 00 00 00 00 f8 00 00 3f 00 ff 00 00 88 0c 00 |........?.......|
    00000020 00 60 09 00 51 02 00 00 00 00 00 00 02 00 00 00 |.`..Q...........|
    00000030 01 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
    00000040 80 01 29 1d 05 5f a0 4e 4f 20 4e 41 4d 45 20 20 |..).._.NO NAME |
    00000050 20 20 46 41 54 33 32 20 20 20 33 c9 8e d1 bc f4 | FAT32 3.....|
    00000060 7b 8e c1 8e d9 bd 00 7c 88 56 40 88 4e 02 8a 56 |{......|[email protected]|
    00000070 40 b4 41 bb aa 55 cd 13 72 10 81 fb 55 aa 75 0a |@.A..U..r...U.u.|
    00000080 f6 c1 01 74 05 fe 46 02 eb 2d 8a 56 40 b4 08 cd |...t..F..-.V@...|
    00000090 13 73 05 b9 ff ff 8a f1 66 0f b6 c6 40 66 0f b6 |.s......f...@f..|
    000000a0 d1 80 e2 3f f7 e2 86 cd c0 ed 06 41 66 0f b7 c9 |...?.......Af...|
    000000b0 66 f7 e1 66 89 46 f8 83 7e 16 00 75 39 83 7e 2a |f..f.F..~..u9.~*|
    000000c0 00 77 33 66 8b 46 1c 66 83 c0 0c bb 00 80 b9 01 |.w3f.F.f........|
    000000d0 00 e8 2c 00 e9 a8 03 a1 f8 7d 80 c4 7c 8b f0 ac |..,......}..|...|
    000000e0 84 c0 74 17 3c ff 74 09 b4 0e bb 07 00 cd 10 eb |..t.<.t.........|
    000000f0 ee a1 fa 7d eb e4 a1 7d 80 eb df 98 cd 16 cd 19 |...}...}........|
    00000100 66 60 80 7e 02 00 0f 84 20 00 66 6a 00 66 50 06 |f`.~.... .fj.fP.|
    00000110 53 66 68 10 00 01 00 b4 42 8a 56 40 8b f4 cd 13 |Sfh.....B.V@....|
    00000120 66 58 66 58 66 58 66 58 eb 33 66 3b 46 f8 72 03 |fXfXfXfX.3f;F.r.|
    00000130 f9 eb 2a 66 33 d2 66 0f b7 4e 18 66 f7 f1 fe c2 |..*f3.f..N.f....|
    00000140 8a ca 66 8b d0 66 c1 ea 10 f7 76 1a 86 d6 8a 56 |..f..f....v....V|
    00000150 40 8a e8 c0 e4 06 0a cc b8 01 02 cd 13 66 61 0f |@............fa.|
    00000160 82 74 ff 81 c3 00 02 66 40 49 75 94 c3 42 4f 4f |[email protected]|
    00000170 54 4d 47 52 20 20 20 20 00 00 00 00 00 00 00 00 |TMGR ........|
    00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
    000001a0 00 00 00 00 00 00 00 00 00 00 00 00 0d 0a 44 69 |..............Di|
    000001b0 73 6b 20 65 72 72 6f 72 ff 0d 0a 50 72 65 73 73 |sk error...Press|
    000001c0 20 61 6e 79 20 6b 65 79 20 74 6f 20 72 65 73 74 | any key to rest|
    000001d0 61 72 74 0d 0a 00 00 00 00 00 00 00 00 00 00 00 |art.............|
    000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
    000001f0 00 00 00 00 00 00 00 00 ac 01 b9 01 00 00 55 aa |..............U.|
    00000200
    ========= Devices which don't seem to have a corresponding hard drive: =========
    sdc
    =============================== StdErr Messages: ===============================
    cat: /tmp/BootInfo-9VAYCuxc/Tmp_Log: No such file or directory
    /dev/sdc: open failed: No medium found
    No volume groups found
    mdadm: No arrays found in config file or automatically
    I tried tackling this myself and ended up not being able to boot into Linux either. I had to go back to the USB install stick and redo a lot of the installation. I thought I'd better ask for some advice before diving in again. Let me know if you need any more info or log/config files.
    Last edited by pauldice (2013-10-11 03:06:18)

    As mentioned earlier, Fast Startup is off. I disabled it before installing Linux. dosfsck looks clean.
    $ sudo umount /dev/sda2
    $ sudo dosfsck -w -r -l -a -v -t /dev/sda2
    fsck.fat 3.0.22 (2013-07-19)
    fsck.fat 3.0.22 (2013-07-19)
    Checking we can access the last sector of the filesystem
    Boot sector contents:
    System ID "MSDOS5.0"
    Media byte 0xf8 (hard disk)
    512 bytes per logical sector
    4096 bytes per cluster
    7006 reserved sectors
    First FAT starts at byte 3587072 (sector 7006)
    2 FATs, 32 bit entries
    303616 bytes per FAT (= 593 sectors)
    Root directory start at cluster 2 (arbitrary size)
    Data area starts at byte 4194304 (sector 8192)
    75776 data clusters (310378496 bytes)
    63 sectors/track, 255 heads
    821248 hidden sectors
    614400 sectors total
    Checking file /
    Checking file /ESP
    Checking file /grub (GRUB)
    Checking file /EFI
    Checking file /loader (LOADER)
    Checking file /vmlinuz-linux (VMLINU~1)
    Checking file /initramfs-linux.img (INITRA~1.IMG)
    Checking file /initramfs-linux-fallback.img (INITRA~2.IMG)
    Checking file /grub/.
    Checking file /grub/..
    Checking file /grub/x86_64-efi (X86_64~1)
    Checking file /grub/locale (LOCALE)
    Checking file /grub/themes (THEMES)
    Checking file /grub/fonts (FONTS)
    Checking file /grub/grub.cfg (GRUB.CFG)
    Checking file /grub/grubenv (GRUBENV)
    Checking file /grub/grub.cfg.backup (GRUBCF~1.BAC)
    Checking file /grub/grub.efi (GRUB.EFI)
    Checking file /grub/x86_64-efi/.
    Checking file /grub/x86_64-efi/..
    Checking file /grub/x86_64-efi/acpi.mod (ACPI.MOD)
    Checking file /grub/x86_64-efi/adler32.mod (ADLER32.MOD)
    Checking file /grub/x86_64-efi/affs.mod (AFFS.MOD)
    Checking file /grub/x86_64-efi/afs.mod (AFS.MOD)
    Checking file /grub/x86_64-efi/ahci.mod (AHCI.MOD)
    Checking file /grub/x86_64-efi/all_video.mod (ALL_VI~1.MOD)
    Checking file /grub/x86_64-efi/aout.mod (AOUT.MOD)
    Checking file /grub/x86_64-efi/appleldr.mod (APPLELDR.MOD)
    Checking file /grub/x86_64-efi/archelp.mod (ARCHELP.MOD)
    Checking file /grub/x86_64-efi/at_keyboard.mod (AT_KEY~1.MOD)
    Checking file /grub/x86_64-efi/ata.mod (ATA.MOD)
    Checking file /grub/x86_64-efi/backtrace.mod (BACKTR~1.MOD)
    Checking file /grub/x86_64-efi/bfs.mod (BFS.MOD)
    Checking file /grub/x86_64-efi/bitmap.mod (BITMAP.MOD)
    Checking file /grub/x86_64-efi/bitmap_scale.mod (BITMAP~1.MOD)
    Checking file /grub/x86_64-efi/blocklist.mod (BLOCKL~1.MOD)
    Checking file /grub/x86_64-efi/boot.mod (BOOT.MOD)
    Checking file /grub/x86_64-efi/bsd.mod (BSD.MOD)
    Checking file /grub/x86_64-efi/btrfs.mod (BTRFS.MOD)
    Checking file /grub/x86_64-efi/bufio.mod (BUFIO.MOD)
    Checking file /grub/x86_64-efi/cacheinfo.mod (CACHEI~1.MOD)
    Checking file /grub/x86_64-efi/cat.mod (CAT.MOD)
    Checking file /grub/x86_64-efi/cbfs.mod (CBFS.MOD)
    Checking file /grub/x86_64-efi/cbls.mod (CBLS.MOD)
    Checking file /grub/x86_64-efi/cbmemc.mod (CBMEMC.MOD)
    Checking file /grub/x86_64-efi/cbtable.mod (CBTABLE.MOD)
    Checking file /grub/x86_64-efi/cbtime.mod (CBTIME.MOD)
    Checking file /grub/x86_64-efi/chain.mod (CHAIN.MOD)
    Checking file /grub/x86_64-efi/cmdline_cat_test.mod (CMDLIN~1.MOD)
    Checking file /grub/x86_64-efi/cmp.mod (CMP.MOD)
    Checking file /grub/x86_64-efi/configfile.mod (CONFIG~1.MOD)
    Checking file /grub/x86_64-efi/cpio.mod (CPIO.MOD)
    Checking file /grub/x86_64-efi/cpio_be.mod (CPIO_BE.MOD)
    Checking file /grub/x86_64-efi/cpuid.mod (CPUID.MOD)
    Checking file /grub/x86_64-efi/crc64.mod (CRC64.MOD)
    Checking file /grub/x86_64-efi/crypto.mod (CRYPTO.MOD)
    Checking file /grub/x86_64-efi/cryptodisk.mod (CRYPTO~1.MOD)
    Checking file /grub/x86_64-efi/cs5536.mod (CS5536.MOD)
    Checking file /grub/x86_64-efi/date.mod (DATE.MOD)
    Checking file /grub/x86_64-efi/datehook.mod (DATEHOOK.MOD)
    Checking file /grub/x86_64-efi/datetime.mod (DATETIME.MOD)
    Checking file /grub/x86_64-efi/diskfilter.mod (DISKFI~1.MOD)
    Checking file /grub/x86_64-efi/dm_nv.mod (DM_NV.MOD)
    Checking file /grub/x86_64-efi/echo.mod (ECHO.MOD)
    Checking file /grub/x86_64-efi/efi_gop.mod (EFI_GOP.MOD)
    Checking file /grub/x86_64-efi/efi_uga.mod (EFI_UGA.MOD)
    Checking file /grub/x86_64-efi/efifwsetup.mod (EFIFWS~1.MOD)
    Checking file /grub/x86_64-efi/efinet.mod (EFINET.MOD)
    Checking file /grub/x86_64-efi/ehci.mod (EHCI.MOD)
    Checking file /grub/x86_64-efi/elf.mod (ELF.MOD)
    Checking file /grub/x86_64-efi/eval.mod (EVAL.MOD)
    Checking file /grub/x86_64-efi/exfat.mod (EXFAT.MOD)
    Checking file /grub/x86_64-efi/exfctest.mod (EXFCTEST.MOD)
    Checking file /grub/x86_64-efi/ext2.mod (EXT2.MOD)
    Checking file /grub/x86_64-efi/extcmd.mod (EXTCMD.MOD)
    Checking file /grub/x86_64-efi/fat.mod (FAT.MOD)
    Checking file /grub/x86_64-efi/fixvideo.mod (FIXVIDEO.MOD)
    Checking file /grub/x86_64-efi/font.mod (FONT.MOD)
    Checking file /grub/x86_64-efi/fshelp.mod (FSHELP.MOD)
    Checking file /grub/x86_64-efi/functional_test.mod (FUNCTI~1.MOD)
    Checking file /grub/x86_64-efi/gcry_arcfour.mod (GCRY_A~1.MOD)
    Checking file /grub/x86_64-efi/gcry_blowfish.mod (GCRY_B~1.MOD)
    Checking file /grub/x86_64-efi/gcry_camellia.mod (GCRY_C~1.MOD)
    Checking file /grub/x86_64-efi/gcry_cast5.mod (GCRY_C~2.MOD)
    Checking file /grub/x86_64-efi/gcry_crc.mod (GCRY_CRC.MOD)
    Checking file /grub/x86_64-efi/gcry_des.mod (GCRY_DES.MOD)
    Checking file /grub/x86_64-efi/gcry_dsa.mod (GCRY_DSA.MOD)
    Checking file /grub/x86_64-efi/gcry_ecc.mod (GCRY_ECC.MOD)
    Checking file /grub/x86_64-efi/gcry_md4.mod (GCRY_MD4.MOD)
    Checking file /grub/x86_64-efi/gcry_md5.mod (GCRY_MD5.MOD)
    Checking file /grub/x86_64-efi/gcry_rfc2268.mod (GCRY_R~1.MOD)
    Checking file /grub/x86_64-efi/gcry_rijndael.mod (GCRY_R~2.MOD)
    Checking file /grub/x86_64-efi/gcry_rmd160.mod (GCRY_R~3.MOD)
    Checking file /grub/x86_64-efi/gcry_rsa.mod (GCRY_RSA.MOD)
    Checking file /grub/x86_64-efi/gcry_seed.mod (GCRY_S~1.MOD)
    Checking file /grub/x86_64-efi/gcry_serpent.mod (GCRY_S~2.MOD)
    Checking file /grub/x86_64-efi/gcry_sha1.mod (GCRY_S~3.MOD)
    Checking file /grub/x86_64-efi/gcry_sha256.mod (GCRY_S~4.MOD)
    Checking file /grub/x86_64-efi/gcry_sha512.mod (GCRY_S~5.MOD)
    Checking file /grub/x86_64-efi/gcry_tiger.mod (GCRY_T~1.MOD)
    Checking file /grub/x86_64-efi/gcry_twofish.mod (GCRY_T~2.MOD)
    Checking file /grub/x86_64-efi/gcry_whirlpool.mod (GCRY_W~1.MOD)
    Checking file /grub/x86_64-efi/geli.mod (GELI.MOD)
    Checking file /grub/x86_64-efi/gettext.mod (GETTEXT.MOD)
    Checking file /grub/x86_64-efi/gfxmenu.mod (GFXMENU.MOD)
    Checking file /grub/x86_64-efi/gfxterm.mod (GFXTERM.MOD)
    Checking file /grub/x86_64-efi/gfxterm_background.mod (GFXTER~1.MOD)
    Checking file /grub/x86_64-efi/gfxterm_menu.mod (GFXTER~2.MOD)
    Checking file /grub/x86_64-efi/gptsync.mod (GPTSYNC.MOD)
    Checking file /grub/x86_64-efi/gzio.mod (GZIO.MOD)
    Checking file /grub/x86_64-efi/halt.mod (HALT.MOD)
    Checking file /grub/x86_64-efi/hashsum.mod (HASHSUM.MOD)
    Checking file /grub/x86_64-efi/hdparm.mod (HDPARM.MOD)
    Checking file /grub/x86_64-efi/hello.mod (HELLO.MOD)
    Checking file /grub/x86_64-efi/help.mod (HELP.MOD)
    Checking file /grub/x86_64-efi/hexdump.mod (HEXDUMP.MOD)
    Checking file /grub/x86_64-efi/hfs.mod (HFS.MOD)
    Checking file /grub/x86_64-efi/hfsplus.mod (HFSPLUS.MOD)
    Checking file /grub/x86_64-efi/hfspluscomp.mod (HFSPLU~1.MOD)
    Checking file /grub/x86_64-efi/http.mod (HTTP.MOD)
    Checking file /grub/x86_64-efi/iorw.mod (IORW.MOD)
    Checking file /grub/x86_64-efi/iso9660.mod (ISO9660.MOD)
    Checking file /grub/x86_64-efi/jfs.mod (JFS.MOD)
    Checking file /grub/x86_64-efi/jpeg.mod (JPEG.MOD)
    Checking file /grub/x86_64-efi/keylayouts.mod (KEYLAY~1.MOD)
    Checking file /grub/x86_64-efi/keystatus.mod (KEYSTA~1.MOD)
    Checking file /grub/x86_64-efi/ldm.mod (LDM.MOD)
    Checking file /grub/x86_64-efi/legacycfg.mod (LEGACY~1.MOD)
    Checking file /grub/x86_64-efi/linux.mod (LINUX.MOD)
    Checking file /grub/x86_64-efi/linux16.mod (LINUX16.MOD)
    Checking file /grub/x86_64-efi/loadbios.mod (LOADBIOS.MOD)
    Checking file /grub/x86_64-efi/loadenv.mod (LOADENV.MOD)
    Checking file /grub/x86_64-efi/loopback.mod (LOOPBACK.MOD)
    Checking file /grub/x86_64-efi/ls.mod (LS.MOD)
    Checking file /grub/x86_64-efi/lsacpi.mod (LSACPI.MOD)
    Checking file /grub/x86_64-efi/lsefi.mod (LSEFI.MOD)
    Checking file /grub/x86_64-efi/lsefimmap.mod (LSEFIM~1.MOD)
    Checking file /grub/x86_64-efi/lsefisystab.mod (LSEFIS~1.MOD)
    Checking file /grub/x86_64-efi/lsmmap.mod (LSMMAP.MOD)
    Checking file /grub/x86_64-efi/lspci.mod (LSPCI.MOD)
    Checking file /grub/x86_64-efi/lssal.mod (LSSAL.MOD)
    Checking file /grub/x86_64-efi/luks.mod (LUKS.MOD)
    Checking file /grub/x86_64-efi/lvm.mod (LVM.MOD)
    Checking file /grub/x86_64-efi/lzopio.mod (LZOPIO.MOD)
    Checking file /grub/x86_64-efi/mdraid09.mod (MDRAID09.MOD)
    Checking file /grub/x86_64-efi/mdraid09_be.mod (MDRAID~1.MOD)
    Checking file /grub/x86_64-efi/mdraid1x.mod (MDRAID1X.MOD)
    Checking file /grub/x86_64-efi/memdisk.mod (MEMDISK.MOD)
    Checking file /grub/x86_64-efi/memrw.mod (MEMRW.MOD)
    Checking file /grub/x86_64-efi/minicmd.mod (MINICMD.MOD)
    Checking file /grub/x86_64-efi/minix.mod (MINIX.MOD)
    Checking file /grub/x86_64-efi/minix2.mod (MINIX2.MOD)
    Checking file /grub/x86_64-efi/minix2_be.mod (MINIX2~1.MOD)
    Checking file /grub/x86_64-efi/minix3.mod (MINIX3.MOD)
    Checking file /grub/x86_64-efi/minix3_be.mod (MINIX3~1.MOD)
    Checking file /grub/x86_64-efi/minix_be.mod (MINIX_BE.MOD)
    Checking file /grub/x86_64-efi/mmap.mod (MMAP.MOD)
    Checking file /grub/x86_64-efi/morse.mod (MORSE.MOD)
    Checking file /grub/x86_64-efi/mpi.mod (MPI.MOD)
    Checking file /grub/x86_64-efi/msdospart.mod (MSDOSP~1.MOD)
    Checking file /grub/x86_64-efi/multiboot.mod (MULTIB~1.MOD)
    Checking file /grub/x86_64-efi/multiboot2.mod (MULTIB~2.MOD)
    Checking file /grub/x86_64-efi/nativedisk.mod (NATIVE~1.MOD)
    Checking file /grub/x86_64-efi/net.mod (NET.MOD)
    Checking file /grub/x86_64-efi/newc.mod (NEWC.MOD)
    Checking file /grub/x86_64-efi/nilfs2.mod (NILFS2.MOD)
    Checking file /grub/x86_64-efi/normal.mod (NORMAL.MOD)
    Checking file /grub/x86_64-efi/ntfs.mod (NTFS.MOD)
    Checking file /grub/x86_64-efi/ntfscomp.mod (NTFSCOMP.MOD)
    Checking file /grub/x86_64-efi/odc.mod (ODC.MOD)
    Checking file /grub/x86_64-efi/ohci.mod (OHCI.MOD)
    Checking file /grub/x86_64-efi/part_acorn.mod (PART_A~1.MOD)
    Checking file /grub/x86_64-efi/part_amiga.mod (PART_A~2.MOD)
    Checking file /grub/x86_64-efi/part_apple.mod (PART_A~3.MOD)
    Checking file /grub/x86_64-efi/part_bsd.mod (PART_BSD.MOD)
    Checking file /grub/x86_64-efi/part_dfly.mod (PART_D~1.MOD)
    Checking file /grub/x86_64-efi/part_dvh.mod (PART_DVH.MOD)
    Checking file /grub/x86_64-efi/part_gpt.mod (PART_GPT.MOD)
    Checking file /grub/x86_64-efi/part_msdos.mod (PART_M~1.MOD)
    Checking file /grub/x86_64-efi/part_plan.mod (PART_P~1.MOD)
    Checking file /grub/x86_64-efi/part_sun.mod (PART_SUN.MOD)
    Checking file /grub/x86_64-efi/part_sunpc.mod (PART_S~1.MOD)
    Checking file /grub/x86_64-efi/parttool.mod (PARTTOOL.MOD)
    Checking file /grub/x86_64-efi/password.mod (PASSWORD.MOD)
    Checking file /grub/x86_64-efi/password_pbkdf2.mod (PASSWO~1.MOD)
    Checking file /grub/x86_64-efi/pata.mod (PATA.MOD)
    Checking file /grub/x86_64-efi/pbkdf2.mod (PBKDF2.MOD)
    Checking file /grub/x86_64-efi/pcidump.mod (PCIDUMP.MOD)
    Checking file /grub/x86_64-efi/play.mod (PLAY.MOD)
    Checking file /grub/x86_64-efi/png.mod (PNG.MOD)
    Checking file /grub/x86_64-efi/priority_queue.mod (PRIORI~1.MOD)
    Checking file /grub/x86_64-efi/probe.mod (PROBE.MOD)
    Checking file /grub/x86_64-efi/procfs.mod (PROCFS.MOD)
    Checking file /grub/x86_64-efi/raid5rec.mod (RAID5REC.MOD)
    Checking file /grub/x86_64-efi/raid6rec.mod (RAID6REC.MOD)
    Checking file /grub/x86_64-efi/read.mod (READ.MOD)
    Checking file /grub/x86_64-efi/reboot.mod (REBOOT.MOD)
    Checking file /grub/x86_64-efi/regexp.mod (REGEXP.MOD)
    Checking file /grub/x86_64-efi/reiserfs.mod (REISERFS.MOD)
    Checking file /grub/x86_64-efi/relocator.mod (RELOCA~1.MOD)
    Checking file /grub/x86_64-efi/romfs.mod (ROMFS.MOD)
    Checking file /grub/x86_64-efi/scsi.mod (SCSI.MOD)
    Checking file /grub/x86_64-efi/search.mod (SEARCH.MOD)
    Checking file /grub/x86_64-efi/search_fs_file.mod (SEARCH~1.MOD)
    Checking file /grub/x86_64-efi/search_fs_uuid.mod (SEARCH~2.MOD)
    Checking file /grub/x86_64-efi/search_label.mod (SEARCH~3.MOD)
    Checking file /grub/x86_64-efi/serial.mod (SERIAL.MOD)
    Checking file /grub/x86_64-efi/setjmp.mod (SETJMP.MOD)
    Checking file /grub/x86_64-efi/setjmp_test.mod (SETJMP~1.MOD)
    Checking file /grub/x86_64-efi/setpci.mod (SETPCI.MOD)
    Checking file /grub/x86_64-efi/sfs.mod (SFS.MOD)
    Checking file /grub/x86_64-efi/sleep.mod (SLEEP.MOD)
    Checking file /grub/x86_64-efi/spkmodem.mod (SPKMODEM.MOD)
    Checking file /grub/x86_64-efi/squash4.mod (SQUASH4.MOD)
    Checking file /grub/x86_64-efi/tar.mod (TAR.MOD)
    Checking file /grub/x86_64-efi/terminal.mod (TERMINAL.MOD)
    Checking file /grub/x86_64-efi/terminfo.mod (TERMINFO.MOD)
    Checking file /grub/x86_64-efi/test.mod (TEST.MOD)
    Checking file /grub/x86_64-efi/test_blockarg.mod (TEST_B~1.MOD)
    Checking file /grub/x86_64-efi/testload.mod (TESTLOAD.MOD)
    Checking file /grub/x86_64-efi/testspeed.mod (TESTSP~1.MOD)
    Checking file /grub/x86_64-efi/tftp.mod (TFTP.MOD)
    Checking file /grub/x86_64-efi/tga.mod (TGA.MOD)
    Checking file /grub/x86_64-efi/time.mod (TIME.MOD)
    Checking file /grub/x86_64-efi/trig.mod (TRIG.MOD)
    Checking file /grub/x86_64-efi/true.mod (TRUE.MOD)
    Checking file /grub/x86_64-efi/udf.mod (UDF.MOD)
    Checking file /grub/x86_64-efi/ufs1.mod (UFS1.MOD)
    Checking file /grub/x86_64-efi/ufs1_be.mod (UFS1_BE.MOD)
    Checking file /grub/x86_64-efi/ufs2.mod (UFS2.MOD)
    Checking file /grub/x86_64-efi/uhci.mod (UHCI.MOD)
    Checking file /grub/x86_64-efi/usb.mod (USB.MOD)
    Checking file /grub/x86_64-efi/usb_keyboard.mod (USB_KE~1.MOD)
    Checking file /grub/x86_64-efi/usbms.mod (USBMS.MOD)
    Checking file /grub/x86_64-efi/usbserial_common.mod (USBSER~1.MOD)
    Checking file /grub/x86_64-efi/usbserial_ftdi.mod (USBSER~2.MOD)
    Checking file /grub/x86_64-efi/usbserial_pl2303.mod (USBSER~3.MOD)
    Checking file /grub/x86_64-efi/usbserial_usbdebug.mod (USBSER~4.MOD)
    Checking file /grub/x86_64-efi/usbtest.mod (USBTEST.MOD)
    Checking file /grub/x86_64-efi/verify.mod (VERIFY.MOD)
    Checking file /grub/x86_64-efi/video.mod (VIDEO.MOD)
    Checking file /grub/x86_64-efi/video_bochs.mod (VIDEO_~1.MOD)
    Checking file /grub/x86_64-efi/video_cirrus.mod (VIDEO_~2.MOD)
    Checking file /grub/x86_64-efi/video_colors.mod (VIDEO_~3.MOD)
    Checking file /grub/x86_64-efi/video_fb.mod (VIDEO_FB.MOD)
    Checking file /grub/x86_64-efi/videoinfo.mod (VIDEOI~1.MOD)
    Checking file /grub/x86_64-efi/videotest.mod (VIDEOT~1.MOD)
    Checking file /grub/x86_64-efi/videotest_checksum.mod (VIDEOT~2.MOD)
    Checking file /grub/x86_64-efi/xfs.mod (XFS.MOD)
    Checking file /grub/x86_64-efi/xnu.mod (XNU.MOD)
    Checking file /grub/x86_64-efi/xnu_uuid.mod (XNU_UUID.MOD)
    Checking file /grub/x86_64-efi/xzio.mod (XZIO.MOD)
    Checking file /grub/x86_64-efi/zfs.mod (ZFS.MOD)
    Checking file /grub/x86_64-efi/zfscrypt.mod (ZFSCRYPT.MOD)
    Checking file /grub/x86_64-efi/zfsinfo.mod (ZFSINFO.MOD)
    Checking file /grub/x86_64-efi/moddep.lst (MODDEP.LST)
    Checking file /grub/x86_64-efi/command.lst (COMMAND.LST)
    Checking file /grub/x86_64-efi/fs.lst (FS.LST)
    Checking file /grub/x86_64-efi/partmap.lst (PARTMAP.LST)
    Checking file /grub/x86_64-efi/parttool.lst (PARTTOOL.LST)
    Checking file /grub/x86_64-efi/video.lst (VIDEO.LST)
    Checking file /grub/x86_64-efi/crypto.lst (CRYPTO.LST)
    Checking file /grub/x86_64-efi/terminal.lst (TERMINAL.LST)
    Checking file /grub/x86_64-efi/core.efi (CORE.EFI)
    Checking file /grub/x86_64-efi/grub.efi (GRUB.EFI)
    Checking file /grub/locale/.
    Checking file /grub/locale/..
    Checking file /grub/locale/ast.mo (AST.MO)
    Checking file /grub/locale/ca.mo (CA.MO)
    Checking file /grub/locale/da.mo (DA.MO)
    Checking file /grub/locale/de.mo (DE.MO)
    Checking file /grub/locale/[email protected] (DE@HEB~1.MO)
    Checking file /grub/locale/de_CH.mo (DE_CH.MO)
    Checking file /grub/locale/[email protected] (EN@ARA~1.MO)
    Checking file /grub/locale/[email protected] (EN@HEB~1.MO)
    Checking file /grub/locale/[email protected] (EN@PIG~1.MO)
    Checking file /grub/locale/[email protected] ([email protected])
    Checking file /grub/locale/eo.mo (EO.MO)
    Checking file /grub/locale/es.mo (ES.MO)
    Checking file /grub/locale/fi.mo (FI.MO)
    Checking file /grub/locale/fr.mo (FR.MO)
    Checking file /grub/locale/hu.mo (HU.MO)
    Checking file /grub/locale/id.mo (ID.MO)
    Checking file /grub/locale/it.mo (IT.MO)
    Checking file /grub/locale/ja.mo (JA.MO)
    Checking file /grub/locale/lt.mo (LT.MO)
    Checking file /grub/locale/nl.mo (NL.MO)
    Checking file /grub/locale/pa.mo (PA.MO)
    Checking file /grub/locale/pl.mo (PL.MO)
    Checking file /grub/locale/pt_BR.mo (PT_BR.MO)
    Checking file /grub/locale/ru.mo (RU.MO)
    Checking file /grub/locale/sl.mo (SL.MO)
    Checking file /grub/locale/sv.mo (SV.MO)
    Checking file /grub/locale/tr.mo (TR.MO)
    Checking file /grub/locale/uk.mo (UK.MO)
    Checking file /grub/locale/vi.mo (VI.MO)
    Checking file /grub/locale/zh_CN.mo (ZH_CN.MO)
    Checking file /grub/locale/zh_TW.mo (ZH_TW.MO)
    Checking file /grub/themes/.
    Checking file /grub/themes/..
    Checking file /grub/themes/starfield (STARFI~1)
    Checking file /grub/themes/starfield/.
    Checking file /grub/themes/starfield/..
    Checking file /grub/themes/starfield/COPYING.CC-BY-SA-3.0 (COPYIN~1.0)
    Checking file /grub/themes/starfield/README
    Checking file /grub/themes/starfield/blob_w.png (BLOB_W.PNG)
    Checking file /grub/themes/starfield/boot_menu_c.png (BOOT_M~1.PNG)
    Checking file /grub/themes/starfield/boot_menu_e.png (BOOT_M~2.PNG)
    Checking file /grub/themes/starfield/boot_menu_n.png (BOOT_M~3.PNG)
    Checking file /grub/themes/starfield/boot_menu_ne.png (BOOT_M~4.PNG)
    Checking file /grub/themes/starfield/boot_menu_nw.png (BOOT_M~5.PNG)
    Checking file /grub/themes/starfield/boot_menu_s.png (BOOT_M~6.PNG)
    Checking file /grub/themes/starfield/boot_menu_se.png (BOOT_M~7.PNG)
    Checking file /grub/themes/starfield/boot_menu_sw.png (BOOT_M~8.PNG)
    Checking file /grub/themes/starfield/boot_menu_w.png (BOOT_M~9.PNG)
    Checking file /grub/themes/starfield/dejavu_10.pf2 (DEJAVU~1.PF2)
    Checking file /grub/themes/starfield/dejavu_12.pf2 (DEJAVU~2.PF2)
    Checking file /grub/themes/starfield/dejavu_14.pf2 (DEJAVU~3.PF2)
    Checking file /grub/themes/starfield/dejavu_16.pf2 (DEJAVU~4.PF2)
    Checking file /grub/themes/starfield/dejavu_bold_14.pf2 (DEJAVU~5.PF2)
    Checking file /grub/themes/starfield/slider_c.png (SLIDER_C.PNG)
    Checking file /grub/themes/starfield/slider_n.png (SLIDER_N.PNG)
    Checking file /grub/themes/starfield/slider_s.png (SLIDER_S.PNG)
    Checking file /grub/themes/starfield/starfield.png (STARFI~1.PNG)
    Checking file /grub/themes/starfield/terminal_box_c.png (TERMIN~1.PNG)
    Checking file /grub/themes/starfield/terminal_box_e.png (TERMIN~2.PNG)
    Checking file /grub/themes/starfield/terminal_box_n.png (TERMIN~3.PNG)
    Checking file /grub/themes/starfield/terminal_box_ne.png (TERMIN~4.PNG)
    Checking file /grub/themes/starfield/terminal_box_nw.png (TERMIN~5.PNG)
    Checking file /grub/themes/starfield/terminal_box_s.png (TERMIN~6.PNG)
    Checking file /grub/themes/starfield/terminal_box_se.png (TERMIN~7.PNG)
    Checking file /grub/themes/starfield/terminal_box_sw.png (TERMIN~8.PNG)
    Checking file /grub/themes/starfield/terminal_box_w.png (TERMIN~9.PNG)
    Checking file /grub/themes/starfield/theme.txt (THEME.TXT)
    Checking file /grub/fonts/.
    Checking file /grub/fonts/..
    Checking file /grub/fonts/unicode.pf2 (UNICODE.PF2)
    Checking file /EFI/.
    Checking file /EFI/..
    Checking file /EFI/Microsoft (MICROS~1)
    Checking file /EFI/Boot (BOOT)
    Checking file /EFI/elementary (ELEMEN~1)
    Checking file /EFI/arch_grub (ARCH_G~1)
    Checking file /EFI/gummiboot (GUMMIB~1)
    Checking file /EFI/Microsoft/.
    Checking file /EFI/Microsoft/..
    Checking file /EFI/Microsoft/Boot (BOOT)
    Checking file /EFI/Microsoft/Boot/.
    Checking file /EFI/Microsoft/Boot/..
    Checking file /EFI/Microsoft/Boot/bg-BG (BG-BG)
    Checking file /EFI/Microsoft/Boot/BOOT.STL
    Checking file /EFI/Microsoft/Boot/BOOTMGR.EFI
    Checking file /EFI/Microsoft/Boot/cs-CZ (CS-CZ)
    Checking file /EFI/Microsoft/Boot/da-DK (DA-DK)
    Checking file /EFI/Microsoft/Boot/de-DE (DE-DE)
    Checking file /EFI/Microsoft/Boot/el-GR (EL-GR)
    Checking file /EFI/Microsoft/Boot/en-GB (EN-GB)
    Checking file /EFI/Microsoft/Boot/en-US (EN-US)
    Checking file /EFI/Microsoft/Boot/es-ES (ES-ES)
    Checking file /EFI/Microsoft/Boot/et-EE (ET-EE)
    Checking file /EFI/Microsoft/Boot/fi-FI (FI-FI)
    Checking file /EFI/Microsoft/Boot/fr-FR (FR-FR)
    Checking file /EFI/Microsoft/Boot/hr-HR (HR-HR)
    Checking file /EFI/Microsoft/Boot/hu-HU (HU-HU)
    Checking file /EFI/Microsoft/Boot/it-IT (IT-IT)
    Checking file /EFI/Microsoft/Boot/ja-JP (JA-JP)
    Checking file /EFI/Microsoft/Boot/ko-KR (KO-KR)
    Checking file /EFI/Microsoft/Boot/lt-LT (LT-LT)
    Checking file /EFI/Microsoft/Boot/lv-LV (LV-LV)
    Checking file /EFI/Microsoft/Boot/MEMTEST.EFI
    Checking file /EFI/Microsoft/Boot/nb-NO (NB-NO)
    Checking file /EFI/Microsoft/Boot/nl-NL (NL-NL)
    Checking file /EFI/Microsoft/Boot/pl-PL (PL-PL)
    Checking file /EFI/Microsoft/Boot/pt-BR (PT-BR)
    Checking file /EFI/Microsoft/Boot/pt-PT (PT-PT)
    Checking file /EFI/Microsoft/Boot/QPS-PLOC
    Checking file /EFI/Microsoft/Boot/ro-RO (RO-RO)
    Checking file /EFI/Microsoft/Boot/ru-RU (RU-RU)
    Checking file /EFI/Microsoft/Boot/sk-SK (SK-SK)
    Checking file /EFI/Microsoft/Boot/sl-SI (SL-SI)
    Checking file /EFI/Microsoft/Boot/sr-Latn-CS (SR-LAT~1)
    Checking file /EFI/Microsoft/Boot/sv-SE (SV-SE)
    Checking file /EFI/Microsoft/Boot/tr-TR (TR-TR)
    Checking file /EFI/Microsoft/Boot/uk-UA (UK-UA)
    Checking file /EFI/Microsoft/Boot/zh-CN (ZH-CN)
    Checking file /EFI/Microsoft/Boot/zh-HK (ZH-HK)
    Checking file /EFI/Microsoft/Boot/zh-TW (ZH-TW)
    Checking file /EFI/Microsoft/Boot/BOOTSTAT.DAT
    Checking file /EFI/Microsoft/Boot/Fonts (FONTS)
    Checking file /EFI/Microsoft/Boot/Resources (RESOUR~1)
    Checking file /EFI/Microsoft/Boot/BCD
    Checking file /EFI/Microsoft/Boot/BCD.LOG
    Checking file /EFI/Microsoft/Boot/BCD.LOG1 (BCD~1.LOG)
    Checking file /EFI/Microsoft/Boot/BCD.LOG2 (BCD~2.LOG)
    Checking file /EFI/Microsoft/Boot/bootmgfw.efi (BOOTMGFW.EFI)
    Checking file /EFI/Microsoft/Boot/bootx64.efi.grb (BOOTX6~1.GRB)
    Checking file /EFI/Microsoft/Boot/bootx64.efi (BOOTX64.EFI)
    Checking file /EFI/Microsoft/Boot/bootmgfw.bootrepair.efi (BOOTMG~1.EFI)
    Checking file /EFI/Microsoft/Boot/bg-BG/.
    Checking file /EFI/Microsoft/Boot/bg-BG/..
    Checking file /EFI/Microsoft/Boot/bg-BG/bootmgfw.efi.mui (BOOTMG~1.MUI)
    Checking file /EFI/Microsoft/Boot/bg-BG/bootmgr.efi.mui (BOOTMG~2.MUI)
    Checking file /EFI/Microsoft/Boot/cs-CZ/.
    Checking file /EFI/Microsoft/Boot/cs-CZ/..
    Checking file /EFI/Microsoft/Boot/cs-CZ/bootmgfw.efi.mui (BOOTMG~1.MUI)
    Checking file /EFI/Microsoft/Boot/cs-CZ/bootmgr.efi.mui (BOOTMG~2.MUI)
    Checking file /EFI/Microsoft/Boot/cs-CZ/memtest.efi.mui (MEMTES~1.MUI)
    Checking file /EFI/Microsoft/Boot/da-DK/.
    Checking file /EFI/Microsoft/Boot/da-DK/..
    Checking file /EFI/Microsoft/Boot/da-DK/bootmgfw.efi.mui (BOOTMG~1.MUI)
    Checking file /EFI/Microsoft/Boot/da-DK/bootmgr.efi.mui (BOOTMG~2.MUI)
    Checking file /EFI/Microsoft/Boot/da-DK/memtest.efi.mui (MEMTES~1.MUI)
    Checking file /EFI/Microsoft/Boot/de-DE/.
    Checking file /EFI/Microsoft/Boot/de-DE/..
    Checking file /EFI/Microsoft/Boot/de-DE/bootmgfw.efi.mui (BOOTMG~1.MUI)
    Checking file /EFI/Microsoft/Boot/de-DE/bootmgr.efi.mui (BOOTMG~2.MUI)
    Checking file /EFI/Microsoft/Boot/de-DE/memtest.efi.mui (MEMTES~1.MUI)
    Checking file /EFI/Microsoft/Boot/el-GR/.
    Checking file /EFI/Microsoft/Boot/el-GR/..
    Checking file /EFI/Microsoft/Boot/el-GR/bootmgfw.efi.mui (BOOTMG~1.MUI)
    Checking file /EFI/Microsoft/Boot/el-GR/bootmgr.efi.mui (BOOTMG~2.MUI)
    Checking file /EFI/Microsoft/Boot/el-GR/memtest.efi.mui (MEMTES~1.MUI)
    Checking file /EFI/Microsoft/Boot/en-GB/.
    Checking file /EFI/Microsoft/Boot/en-GB/..
    Checking file /EFI/Microsoft/Boot/en-GB/bootmgfw.efi.mui (BOOTMG~1.MUI)
    Checking file /EFI/Microsoft/Boot/en-GB/bootmgr.efi.mui (BOOTMG~2.MUI)
    Checking file /EFI/Microsoft/Boot/en-US/.
    Checking file /EFI/Microsoft/Boot/en-US/..
    Checking file /EFI/Microsoft/Boot/en-US/bootmgfw.efi.mui (BOOTMG~1.MUI)
    Checking file /EFI/Microsoft/Boot/en-US/bootmgr.efi.mui (BOOTMG~2.MUI)
    Checking file /EFI/Microsoft/Boot/en-US/memtest.efi.mui (MEMTES~1.MUI)
    Checking file /EFI/Microsoft/Boot/es-ES/.
    Checking file /EFI/Microsoft/Boot/es-ES/..
    Checking file /EFI/Microsoft/Boot/es-ES/bootmgfw.efi.mui (BOOTMG~1.MUI)
    Checking file /EFI/Microsoft/Boot/es-ES/bootmgr.efi.mui (BOOTMG~2.MUI)
    Checking file /EFI/Microsoft/Boot/es-ES/memtest.efi.mui (MEMTES~1.MUI)
    Checking file /EFI/Microsoft/Boot/et-EE/.
    Checking file /EFI/Microsoft/Boot/et-EE/..
    Checking file /EFI/Microsoft/Boot/et-EE/bootmgfw.efi.mui (BOOTMG~1.MUI)
    Checking file /EFI/Microsoft/Boot/et-EE/bootmgr.efi.mui (BOOTMG~2.MUI)
    Checking file /EFI/Microsoft/Boot/fi-FI/.
    Checking file /EFI/Microsoft/Boot/fi-FI/..
    Checking file /EFI/Microsoft/Boot/fi-FI/bootmgfw.efi.mui (BOOTMG~1.MUI)
    Checking file /EFI/Microsoft/Boot/fi-FI/bootmgr.efi.mui (BOOTMG~2.MUI)
    Checking file /EFI/Microsoft/Boot/fi-FI/memtest.efi.mui (MEMTES~1.MUI)
    Checking file /EFI/Microsoft/Boot/fr-FR/.
    Checking file /EFI/Microsoft/Boot/fr-FR/..
    Checking file /EFI/Microsoft/Boot/fr-FR/bootmgfw.efi.mui (BOOTMG~1.MUI)
    Checking file /EFI/Microsoft/Boot/fr-FR/bootmgr.efi.mui (BOOTMG~2.MUI)
    Checking file /EFI/Microsoft/Boot/fr-FR/memtest.efi.mui (MEMTES~1.MUI)
    Checking file /EFI/Microsoft/Boot/hr-HR/.
    Checking file /EFI/Microsoft/Boot/hr-HR/..
    Checking file /EFI/Microsoft/Boot/hr-HR/bootmgfw.efi.mui (BOOTMG~1.MUI)
    Checking file /EFI/Microsoft/Boot/hr-HR/bootmgr.efi.mui (BOOTMG~2.MUI)
    Checking file /EFI/Microsoft/Boot/hu-HU/.
    Checking file /EFI/Microsoft/Boot/hu-HU/..
    Checking file /EFI/Microsoft/Boot/hu-HU/bootmgfw.efi.mui (BOOTMG~1.MUI)
    Checking file /EFI/Microsoft/Boot/hu-HU/bootmgr.efi.mui (BOOTMG~2.MUI)
    Checking file /EFI/Microsoft/Boot/hu-HU/memtest.efi.mui (MEMTES~1.MUI)
    Checking file /EFI/Microsoft/Boot/it-IT/.
    Checking file /EFI/Microsoft/Boot/it-IT/..
    Checking file /EFI/Microsoft/Boot/it-IT/bootmgfw.efi.mui (BOOTMG~1.MUI)
    Checking file /EFI/Microsoft/Boot/it-IT/bootmgr.efi.mui (BOOTMG~2.MUI)
    Checking file /EFI/Microsoft/Boot/it-IT/memtest.efi.mui (MEMTES~1.MUI)
    Checking file /EFI/Microsoft/Boot/ja-JP/.
    Checking file /EFI/Microsoft/Boot/ja-JP/..
    Checking file /EFI/Microsoft/Boot/ja-JP/bootmgfw.efi.mui (BOOTMG~1.MUI)
    Checking file /EFI/Microsoft/Boot/ja-JP/bootmgr.efi.mui (BOOTMG~2.MUI)
    Checking file /EFI/Microsoft/Boot/ja-JP/memtest.efi.mui (MEMTES~1.MUI)
    Checking file /EFI/Microsoft/Boot/ko-KR/.
    Checking file /EFI/Microsoft/Boot/ko-KR/..
    Checking file /EFI/Microsoft/Boot/ko-KR/bootmgfw.efi.mui (BOOTMG~1.MUI)
    Checking file /EFI/Microsoft/Boot/ko-KR/bootmgr.efi.mui (BOOTMG~2.MUI)
    Checking file /EFI/Microsoft/Boot/ko-KR/memtest.efi.mui (MEMTES~1.MUI)
    Checking file /EFI/Microsoft/Boot/lt-LT/.
    Checking file /EFI/Microsoft/Boot/lt-LT/..
    Checking file /EFI/Microsoft/Boot/lt-LT/bootmgfw.efi.mui (BOOTMG~1.MUI)
    Checking file /EFI/Microsoft/Boot/lt-LT/bootmgr.efi.mui (BOOTMG~2.MUI)
    Checking file /EFI/Microsoft/Boot/lv-LV/.
    Checking file /EFI/Microsoft/Boot/lv-LV/..
    Checking file /EFI/Microsoft/Boot/lv-LV/bootmgfw.efi.mui (BOOTMG~1.MUI)
    Checking file /EFI/Microsoft/Boot/lv-LV/bootmgr.efi.mui (BOOTMG~2.MUI)
    Checking file /EFI/Microsoft/Boot/nb-NO/.
    Checking file /EFI/Microsoft/Boot/nb-NO/..
    Checking file /EFI/Microsoft/Boot/nb-NO/bootmgfw.efi.mui (BOOTMG~1.MUI)
    Checking file /EFI/Microsoft/Boot/nb-NO/bootmgr.efi.mui (BOOTMG~2.MUI)
    Checking file /EFI/Microsoft/Boot/nb-NO/memtest.efi.mui (MEMTES~1.MUI)
    Checking file /EFI/Microsoft/Boot/nl-NL/.
    Checking file /EFI/Microsoft/Boot/nl-NL/..
    Checking file /EFI/Microsoft/Boot/nl-NL/bootmgfw.efi.mui (BOOTMG~1.MUI)
    Checking file /EFI/Microsoft/Boot/nl-NL/bootmgr.efi.mui (BOOTMG~2.MUI)
    Checking file /EFI/Microsoft/Boot/nl-NL/memtest.efi.mui (MEMTES~1.MUI)
    Checking file /EFI/Microsoft/Boot/pl-PL/.
    Checking file /EFI/Microsoft/Boot/pl-PL/..
    Checking file /EFI/Microsoft/Boot/pl-PL/bootmgfw.efi.mui (BOOTMG~1.MUI)
    Checking file /EFI/Microsoft/Boot/pl-PL/bootmgr.efi.mui (BOOTMG~2.MUI)
    Checking file /EFI/Microsoft/Boot/pl-PL/memtest.efi.mui (MEMTES~1.MUI)
    Checking file /EFI/Microsoft/Boot/pt-BR/.
    Checking file /EFI/Microsoft/Boot/pt-BR/..
    Checking file /EFI/Microsoft/Boot/pt-BR/bootmgfw.efi.mui (BOOTMG~1.MUI)
    Checking file /EFI/Microsoft/Boot/pt-BR/bootmgr.efi.mui (BOOTMG~2.MUI)
    Checking file /EFI/Microsoft/Boot/pt-BR/memtest.efi.mui (MEMTES~1.MUI)
    Checking file /EFI/Microsoft/Boot/pt-PT/.
    Checking file /EFI/Microsoft/Boot/pt-PT/..
    Checking file /EFI/Microsoft/Boot/pt-PT/bootmgfw.efi.mui (BOOTMG~1.MUI)
    Checking file /EFI/Microsoft/Boot/pt-PT/bootmgr.efi.mui (BOOTMG~2.MUI)
    Checking file /EFI/Microsoft/Boot/pt-PT/memtest.efi.mui (MEMTES~1.MUI)
    Checking file /EFI/Microsoft/Boot/QPS-PLOC/.
    Checking file /EFI/Microsoft/Boot/QPS-PLOC/..
    Checking file /EFI/Microsoft/Boot/QPS-PLOC/bootmgfw.efi.mui (BOOTMG~1.MUI)
    Checking file /EFI/Microsoft/Boot/QPS-PLOC/bootmgr.efi.mui (BOOTMG~2.MUI)
    Checking file /EFI/Microsoft/Boot/QPS-PLOC/memtest.efi.mui (MEMTES~1.MUI)
    Checking file /EFI/Microsoft/Boot/ro-RO/.
    Checking file /EFI/Microsoft/Boot/ro-RO/..
    Checking file /EFI/Microsoft/Boot/ro-RO/bootmgfw.efi.mui (BOOTMG~1.MUI)
    Checking file /EFI/Microsoft/Boot/ro-RO/bootmgr.efi.mui (BOOTMG~2.MUI)
    Checking file /EFI/Microsoft/Boot/ru-RU/.
    Checking file /EFI/Microsoft/Boot/ru-RU/..
    Checking file /EFI/Microsoft/Boot/ru-RU/bootmgfw.efi.mui (BOOTMG~1.MUI)
    Checking file /EFI/Microsoft/Boot/ru-RU/bootmgr.efi.mui (BOOTMG~2.MUI)
    Checking file /EFI/Microsoft/Boot/ru-RU/memtest.efi.mui (MEMTES~1.MUI)
    Checking file /EFI/Microsoft/Boot/sk-SK/.
    Checking file /EFI/Microsoft/Boot/sk-SK/..
    Checking file /EFI/Microsoft/Boot/sk-SK/bootmgfw.efi.mui (BOOTMG~1.MUI)
    Checking file /EFI/Microsoft/Boot/sk-SK/bootmgr.efi.mui (BOOTMG~2.MUI)
    Checking file /EFI/Microsoft/Boot/sl-SI/.
    Checking file /EFI/Microsoft/Boot/sl-SI/..
    Checking file /EFI/Microsoft/Boot/sl-SI/bootmgfw.efi.mui (BOOTMG~1.MUI)
    Checking file /EFI/Microsoft/Boot/sl-SI/bootmgr.efi.mui (BOOTMG~2.MUI)
    Checking file /EFI/Microsoft/Boot/sr-Latn-CS/.
    Checking file /EFI/Microsoft/Boot/sr-Latn-CS/..
    Checking file /EFI/Microsoft/Boot/sr-Latn-CS/bootmgfw.efi.mui (BOOTMG~1.MUI)
    Checking file /EFI/Microsoft/Boot/sr-Latn-CS/bootmgr.efi.mui (BOOTMG~2.MUI)
    Checking file /EFI/Microsoft/Boot/sv-SE/.
    Checking file /EFI/Microsoft/Boot/sv-SE/..
    Checking file /EFI/Microsoft/Boot/sv-SE/bootmgfw.efi.mui (BOOTMG~1.MUI)
    Checking file /EFI/Microsoft/Boot/sv-SE/bootmgr.efi.mui (BOOTMG~2.MUI)
    Checking file /EFI/Microsoft/Boot/sv-SE/memtest.efi.mui (MEMTES~1.MUI)
    Checking file /EFI/Microsoft/Boot/tr-TR/.
    Checking file /EFI/Microsoft/Boot/tr-TR/..
    Checking file /EFI/Microsoft/Boot/tr-TR/bootmgfw.efi.mui (BOOTMG~1.MUI)
    Checking file /EFI/Microsoft/Boot/tr-TR/bootmgr.efi.mui (BOOTMG~2.MUI)
    Checking file /EFI/Microsoft/Boot/tr-TR/memtest.efi.mui (MEMTES~1.MUI)
    Checking file /EFI/Microsoft/Boot/uk-UA/.
    Checking file /EFI/Microsoft/Boot/uk-UA/..
    Checking file /EFI/Microsoft/Boot/uk-UA/bootmgfw.efi.mui (BOOTMG~1.MUI)
    Checking file /EFI/Microsoft/Boot/uk-UA/bootmgr.efi.mui (BOOTMG~2.MUI)
    Checking file /EFI/Microsoft/Boot/zh-CN/.
    Checking file /EFI/Microsoft/Boot/zh-CN/..
    Checking file /EFI/Microsoft/Boot/zh-CN/bootmgfw.efi.mui (BOOTMG~1.MUI)
    Checking file /EFI/Microsoft/Boot/zh-CN/bootmgr.efi.mui (BOOTMG~2.MUI)
    Checking file /EFI/Microsoft/Boot/zh-CN/memtest.efi.mui (MEMTES~1.MUI)
    Checking file /EFI/Microsoft/Boot/zh-HK/.
    Checking file /EFI/Microsoft/Boot/zh-HK/..
    Checking file /EFI/Microsoft/Boot/zh-HK/bootmgfw.efi.mui (BOOTMG~1.MUI)
    Checking file /EFI/Microsoft/Boot/zh-HK/bootmgr.efi.mui (BOOTMG~2.MUI)
    Checking file /EFI/Microsoft/Boot/zh-HK/memtest.efi.mui (MEMTES~1.MUI)
    Checking file /EFI/Microsoft/Boot/zh-TW/.
    Checking file /EFI/Microsoft/Boot/zh-TW/..
    Checking file /EFI/Microsoft/Boot/zh-TW/bootmgfw.efi.mui (BOOTMG~1.MUI)
    Checking file /EFI/Microsoft/Boot/zh-TW/bootmgr.efi.mui (BOOTMG~2.MUI)
    Checking file /EFI/Microsoft/Boot/zh-TW/memtest.efi.mui (MEMTES~1.MUI)
    Checking file /EFI/Microsoft/Boot/Fonts/.
    Checking file /EFI/Microsoft/Boot/Fonts/..
    Checking file /EFI/Microsoft/Boot/Fonts/CHS_BOOT.TTF
    Checking file /EFI/Microsoft/Boot/Fonts/CHT_BOOT.TTF
    Checking file /EFI/Microsoft/Boot/Fonts/JPN_BOOT.TTF
    Checking file /EFI/Microsoft/Boot/Fonts/KOR_BOOT.TTF
    Checking file /EFI/Microsoft/Boot/Fonts/malgunn_boot.ttf (MALGUN~1.TTF)
    Checking file /EFI/Microsoft/Boot/Fonts/malgun_boot.ttf (MALGUN~2.TTF)
    Checking file /EFI/Microsoft/Boot/Fonts/meiryon_boot.ttf (MEIRYO~1.TTF)
    Checking file /EFI/Microsoft/Boot/Fonts/meiryo_boot.ttf (MEIRYO~2.TTF)
    Checking file /EFI/Microsoft/Boot/Fonts/msjhn_boot.ttf (MSJHN_~1.TTF)
    Checking file /EFI/Microsoft/Boot/Fonts/msjh_boot.ttf (MSJH_B~1.TTF)
    Checking file /EFI/Microsoft/Boot/Fonts/msyhn_boot.ttf (MSYHN_~1.TTF)
    Checking file /EFI/Microsoft/Boot/Fonts/msyh_boot.ttf (MSYH_B~1.TTF)
    Checking file /EFI/Microsoft/Boot/Fonts/segmono_boot.ttf (SEGMON~1.TTF)
    Checking file /EFI/Microsoft/Boot/Fonts/segoen_slboot.ttf (SEGOEN~1.TTF)
    Checking file /EFI/Microsoft/Boot/Fonts/segoe_slboot.ttf (SEGOE_~1.TTF)
    Checking file /EFI/Microsoft/Boot/Fonts/wgl4_boot.ttf (WGL4_B~1.TTF)
    Checking file /EFI/Microsoft/Boot/Resources/.
    Checking file /EFI/Microsoft/Boot/Resources/..
    Checking file /EFI/Microsoft/Boot/Resources/BOOTRES.DLL
    Checking file /EFI/Microsoft/Boot/Resources/en-US (EN-US)
    Checking file /EFI/Microsoft/Boot/Resources/en-US/.
    Checking file /EFI/Microsoft/Boot/Resources/en-US/..
    Checking file /EFI/Microsoft/Boot/Resources/en-US/bootres.dll.mui (BOOTRE~1.MUI)
    Checking file /EFI/Boot/.
    Checking file /EFI/Boot/..
    Checking file /EFI/Boot/bkpbootx64.efi (BKPBOO~1.EFI)
    Checking file /EFI/Boot/bootx64.efi (BOOTX64.EFI)
    Checking file /EFI/elementary/.
    Checking file /EFI/elementary/..
    Checking file /EFI/elementary/grubx64.efi (GRUBX64.EFI)
    Checking file /EFI/arch_grub/.
    Checking file /EFI/arch_grub/..
    Checking file /EFI/arch_grub/grubx64.efi (GRUBX64.EFI)
    Checking file /EFI/gummiboot/.
    Checking file /EFI/gummiboot/..
    Checking file /EFI/gummiboot/gummibootx64.efi (GUMMIB~2.EFI)
    Checking file /loader/.
    Checking file /loader/..
    Checking file /loader/entries (ENTRIES)
    Checking file /loader/loader.conf (LOADER~1.CON)
    Checking file /loader/entries/.
    Checking file /loader/entries/..
    Checking file /loader/entries/arch.conf (ARCH~1.CON)
    Checking for bad clusters.
    Reclaiming unconnected clusters.
    Checking free cluster summary.
    /dev/sda2: 500 files, 14626/75776 clusters
    srs5694 wrote:No, it definitely looks in EFI/Microsoft/Boot for boot loader files.
    I'm not sure it does. This is the only mention of efi files I can find in the script.
    # Check FAT filesystems for EFI boot files.
    for file in "${mountname}"/efi/*/*.efi ; do
    # Remove "${mountname}" part of the filename.
    file="${file#${mountname}}";
    if [ -f "${mountname}${file}" ] && [ -s "${mountname}${file}" ] && FileNotMounted "${mountname}${file}" "${mountname}" ; then
    BootFiles="${BootFiles} ${file}";
    fi
    done
    Looking for "${mountname}"/efi/*/*.efi will only pick up files one level down from, say, /boot/EFI. Files in /boot/EFI/Microsoft/Boot are two levels down. I copied bootx64.efi into /boot/EFI/Microsoft and the script picked it up. This is with the latest version of bootinfoscript afaik.
    $ bootinfoscript -v
    Boot Info Script version: 0.61
    Release date: 1 April 2012

  • EFI/refind boot- how to get kernel vmlinuz in /boot/efi/EFI/arch?

    I have a MacBook Pro Retina (10,2) running arch. It EFI boots using rEFInd, booting from /boot/efi/EFI/arch. This problem has been happening since I first installed the system in July - when I use pacman to update to the latest kernel, the mkinitcpio hooks generate for the current kernel, not the one that was just installed. If I don't manually run mkinitcpio after the update, I'm left with an unbootable system (the ususal "Unable to find root device" error, and dumped to recovery shell) because of a kernel/initrd mismatch (I think).
    So I think the problem isn't mkinitcpio, but rather that the "linux" package is installing the kernel at /boot/vmlinuz-linux (which I later manually copy to /boot/efi/EFI/arch/vmlinuz-linux), but mkinitcpio is looking in the correct path (/boot/efi/EFI/arch) for the kernel... which is the last kernel, since I haven't copied it there yet.
    As an example (yeah, I know I went a LONG time between updates, mainly due to nvidia issues), yesterday I did a full update that bumped me from 3.9.8-1 to 3.10.10-1. But here's the mkinitcpio output during the pacman run:
    upgrading linux...
    >>> Updating module dependencies. Please wait ...
    >>> Generating initial ramdisk, using mkinitcpio. Please wait...
    ==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'default'
    -> -k /boot/efi/EFI/arch/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/efi/EFI/arch/initramfs-linux.img
    ==> Starting build: 3.9.8-1-ARCH
    -> Running build hook: [base]
    -> Running build hook: [udev]
    -> Running build hook: [autodetect]
    -> Running build hook: [modconf]
    -> Running build hook: [block]
    -> Running build hook: [filesystems]
    -> Running build hook: [keyboard]
    ==> ERROR: module not found: `usbhid'
    -> Running build hook: [fsck]
    -> Running build hook: [resume]
    ==> WARNING: No modules were added to the image. This is probably not what you want.
    ==> Creating gzip initcpio image: /boot/efi/EFI/arch/initramfs-linux.img
    ==> WARNING: errors were encountered during the build. The image may not be complete.
    ==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'fallback'
    -> -k /boot/efi/EFI/arch/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/efi/EFI/arch/initramfs-linux-fallback.img -S autodetect
    ==> Starting build: 3.9.8-1-ARCH
    -> Running build hook: [base]
    -> Running build hook: [udev]
    -> Running build hook: [modconf]
    -> Running build hook: [block]
    -> Running build hook: [filesystems]
    -> Running build hook: [keyboard]
    ==> ERROR: module not found: `usbhid'
    -> Running build hook: [fsck]
    -> Running build hook: [resume]
    ==> WARNING: No modules were added to the image. This is probably not what you want.
    ==> Creating gzip initcpio image: /boot/efi/EFI/arch/initramfs-linux-fallback.img
    ==> WARNING: errors were encountered during the build. The image may not be complete.
    error: command failed to execute correctly
    Is there any solution to this problem? Because of the nature of rEFInd, I can't (don't think I can? I remember trying it and having problems) just symlink /boot/efi/EFI/arch/vmlinuz-linux to /boot/vmlinuz-linux.
    Any ideas/help would be greatly appreciated.
    Here's the uncommented lines in /etc/mkinitcpio.conf:
    MODULES=""
    BINARIES=""
    FILES=""
    HOOKS="base udev autodetect modconf block filesystems keyboard fsck resume"
    And from /etc/mkinitcpio.d/linux.preset, which I manually specify on the command line (-p linux) when I re-run mkinitcpio after copying vmlinuz into place:
    ALL_config="/etc/mkinitcpio.conf"
    ALL_kver="/boot/efi/EFI/arch/vmlinuz-linux"
    PRESETS=('default' 'fallback')
    default_image="/boot/efi/EFI/arch/initramfs-linux.img"
    fallback_image="/boot/efi/EFI/arch/initramfs-linux-fallback.img"
    fallback_options="-S autodetect"
    Is the right solution just changing ALL_kver to /boot/vmlinuz-linux and then copying that into /boot/efi/EFI/arch after the install, or is there some nicer solution so that this can actually be an automatic process?
    Thanks for any advice/tips/suggestions.
    PS - I'm running arch on the Retina with KDE. All of my configuration after the initial working install is handled by Puppet, and the module I use (along with the initial instructions and a list of what is and isn't working so far) is available at https://github.com/jantman/puppet-archl … bookretina

    Thanks, Rod! I agree, a simple mount -L esp /boot configuration is definitely ideal for a single installation system. That was what I first tried when I first installed my UEFI board. But I keep multiple installations on disk, and multiple configs per install, so I would often run into issues with installations interfering with one another's /boot files.
    I also tried unique file names per installation - like prepending installation identifiers to filenames - but that required changing defaults at install, /boot monitor scripts and services and of course I would occasionally forget to implement it for an installation and be right back at square one. It was a headache.
    Eventually I settled on the solution I described above because it was simply implemented, portable without modification, provided me a sane /boot tree, seemed to play nicely with default options across the board, and, well, because it was the best I could come up with. I figured that UEFI had already imposed the mandatory FAT32 partition on me so I might as well use it for all it was worth. I mean, even Windows fits in right along with the rest. This way I could interface with UEFI and linux bootloaders in the pre-UEFI customary way with simple configuration edits in /etc/fstab and in /boot, thanks mostly, of course, to rEFInd and what I learned reading rodsbooks.
    I realize that I'm probably in violation of the GNU filesystem standard with the root-level /esp mount, but, to me, it seemed the intuitive place to put it. And frankly, I really don't know any better. Perhaps it belongs in /var/run or something? I'm fully confident GNU will have resolved a standard mount point for it once and for all sometime in the next decade or so.
    Still, as you say, esp as /boot is ideal. Creshal very elegantly described it on the UEFI Bootloaders wiki Talk page like this:
    efibootmgr -c -l /vmlinuz-linux -u "$(cat /proc/cmdline)"
    Super simple, assuming an esp at /dev/sda1. He doesn't mention the necessary /boot entry in /etc/fstab or the various possible issues with efibootmgr/UEFI NVRAM though, which is of course perfectly acceptable in Talk. Still, I mentioned these things in reply to him there and described my solution like this:
    $ mkdir -p /esp; mount -L {,/}esp
    $ mkdir -p /esp/EFI/boot/<NEW_SYSTEM>/; mv /boot/* $_; mount --bind $_ /boot
    $ cat <<'EOF' >/etc/fstab
    LABEL=<NEW_ROOTFS> / <FSTYPE> defaults 0 0
    LABEL=esp /esp vfat defaults 0 0
    /esp/EFI/boot/<NEW_SYSTEM> /boot none defaults,bind 0 0
    EOF
    $ sed -ri 's/root=[^ ]*/root=LABEL=<NEW_ROOTFS>/g' /boot/refind_linux.conf
    Probably that code works, though it's entirely possible I've stumbled on syntax somewhere as I haven't tested it as written. It is admittedly less elegant than Creshal's proffered solution, but it includes an operable /etc/fstab, skeleton that it is, and edits your refind_linux.conf to boot. Assuming gpt partition labels and a rEFInd install it should do the job with very few required modifications if any aside from replacing the <VAR> strings and adding /etc/fstab entries as appropriate.
    I am troubled, though, by the possible incompatibilities you mention with a vfat filesystem mounted at /boot and default symlinking behavior there. Which distributions behave this way? I don't think I've encountered it, though my default install is arch so I suppose it's possible I've just overlooked it.
    I ask mainly because I've also added this to the wiki as a Sync EFIStub Kernel option and would like to highlight any inherent incompatibilities there or remove it if necessary, especially considering that I've already so boldly stated: "The following method should work similarly with any distribution or any combination thereof." Guess I jumped the gun on that one, huh?
    Anyway, thanks again for rEFInd and your considerable work on rodsbooks.
    -Mike
    Last edited by mikeserv (2013-09-30 23:04:51)

  • External 1TB harddrive failed to mount

    Hi all,
    after some happy time using my external 1TB WD drive it seems hard times comes. It failed mount, no matter what I try. I really don't know, what else I should do. I don't want to use any recover software, if possible. Please advise any help, what to do. HDD is connected on firewire, when I connect it to USB, no change - I can not see it in system.
    Here is some important information:
    FireWire Bus:
    Maximum Speed: Up to 400 Mb/sec
    My Book:
    Manufacturer: WD
    Model: 0x1102
    GUID: 0x90A9CBB642AC59
    Maximum Speed: Up to 400 Mb/sec
    Connection Speed: Up to 400 Mb/sec
    Sub-units:
    My Book Unit:
    Unit Software Version: 0x10483
    Unit Spec ID: 0x609E
    Firmware Revision: 0x1028
    Product Revision Level: 1028
    Sub-units:
    My Book SBP-LUN:
    Capacity: 1 TB (1,000,204,886,016 bytes)
    Removable Media: Yes
    BSD Name: disk1
    Partition Map Type: GPT (GUID Partition Table)
    S.M.A.R.T. status: Not Supported
    Volumes:
    1TB - Time Machine:
    Capacity: 999.86 GB (999,860,912,128 bytes)
    Writable: Yes
    File System: Case-Sensitive Journaled HFS+
    BSD Name: disk1s2
    My Book Device Unit:
    Unit Software Version: 0x10483
    Unit Spec ID: 0x609E
    Firmware Revision: 0x1028
    Product Revision Level:
    Sub-units:
    My Book Device SBP-LUN:
    sh-3.2# diskutil list
    /dev/disk0
    #: TYPE NAME SIZE IDENTIFIER
    0: GUIDpartitionscheme *250.1 GB disk0
    1: EFI 209.7 MB disk0s1
    2: Apple_HFS Macintosh HD 249.7 GB disk0s2
    /dev/disk1
    #: TYPE NAME SIZE IDENTIFIER
    0: GUIDpartitionscheme *1.0 TB disk1
    1: EFI 209.7 MB disk1s1
    2: Apple_HFS 1TB - Time Machine 999.9 GB disk1s2
    sh-3.2# diskutil info /dev/disk1
    Device Identifier: disk1
    Device Node: /dev/disk1
    Part Of Whole: disk1
    Device / Media Name: WD
    Volume Name:
    Escaped with Unicode:
    Mounted: No
    File System: None
    Partition Type: GUIDpartitionscheme
    Bootable: Not bootable
    Media Type: Generic
    Protocol: FireWire
    SMART Status: Not Supported
    Total Size: 1.0 TB (1000204886016 Bytes) (exactly 1953525168 512-Byte-Blocks)
    Volume Free Space: Not Applicable
    Read-Only Media: No
    Read-Only Volume: Not applicable (no filesystem)
    Ejectable: Yes
    Whole: Yes
    Internal: No
    OS 9 Drivers: No
    Low Level Format: Not Supported
    sh-3.2# diskutil repairVolume disk1s2
    Started filesystem repair on disk1s2 1TB - Time Machine
    Checking Journaled HFS Plus volume
    Detected a case-sensitive volume
    Checking extents overflow file
    Checking catalog file
    Checking multi-linked files
    Checking catalog hierarchy
    Checking extended attributes file
    Checking multi-linked directories
    Checking volume bitmap
    Checking volume information
    The volume 1TB - Time Machine appears to be OK
    Volume repair complete
    Updating boot support partitions for the volume as required
    Finished filesystem repair on disk1s2 1TB - Time Machine
    sh-3.2# diskutil mountDisk /dev/disk1
    One or more volume(s) failed to mount
    Hardware Overview:
    Model Name: MacBook
    Model Identifier: MacBook4,1
    Processor Name: Intel Core 2 Duo
    Processor Speed: 2.4 GHz
    Number Of Processors: 1
    Total Number Of Cores: 2
    L2 Cache: 3 MB
    Memory: 4 GB
    Bus Speed: 800 MHz
    Boot ROM Version: MB41.00C1.B00
    SMC Version (system): 1.31f0
    Serial Number (system): W88*****
    Hardware UUID: 9A66AD46-BE1B-520A-BB07-B060DCAF21FD
    Sudden Motion Sensor:
    State: Enabled
    < Edited by Host >

    ok, so I pick up last chance, I run Disk Warrior, after one hour it recovers my filesystem (really nice tool by the way).
    Problem occurs, when I reboot computer - volume can not be mounted. So I ran repair disk id disk utility and it seems helps now. Now it seems I dont have problem with this disk, but I am still sure.
    Anyway:
    sh-3.2# diskutil verifyVolume /dev/disk3s2
    Started filesystem verification on disk3s2 1TB - Time Machine
    Checking non-journaled HFS Plus Volume
    Detected a case-sensitive volume
    Checking extents overflow file
    Checking catalog file
    Checking multi-linked files
    Checking catalog hierarchy
    Checking extended attributes file
    Checking multi-linked directories
    Checking volume bitmap
    Checking volume information
    The volume 1TB - Time Machine appears to be OK
    Finished filesystem verification on disk3s2 1TB - Time Machine

  • External Hard Drive Fails to Mount

    I have a 1TB external hard drive disk2 below, that fails to mount. I have run Utilities/Disk Utility and completed first aid successfully (verifying and repairing) but I am still unable to Mount the drive. I have also tried mounting the drive from the disk utility but that was not sucessful... it suggests running first aid but I have already done that. First aid results, also included below.
    Here is the termal commands and response used, without success:
    Jamess-iMac-7:~ jamesbowtell$ diskutil list
    /dev/disk0
       #:                       TYPE NAME                    SIZE       IDENTIFIER
       0:      GUID_partition_scheme                        *1.0 TB     disk0
       1:                        EFI EFI                     209.7 MB   disk0s1
       2:                  Apple_HFS Macintosh HD            999.3 GB   disk0s2
       3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
    /dev/disk1
       #:                       TYPE NAME                    SIZE       IDENTIFIER
       0:      GUID_partition_scheme                        *2.0 TB     disk1
       1:                        EFI EFI                     209.7 MB   disk1s1
       2:          Apple_CoreStorage                         2.0 TB     disk1s2
       3:                 Apple_Boot Boot OS X               134.2 MB   disk1s3
    /dev/disk2
       #:                       TYPE NAME                    SIZE       IDENTIFIER
       0:      GUID_partition_scheme                        *1.0 TB     disk2
       1:                        EFI EFI                     209.7 MB   disk2s1
       2:                  Apple_HFS 1TB Storage             999.9 GB   disk2s2
    /dev/disk3
       #:                       TYPE NAME                    SIZE       IDENTIFIER
       0:                  Apple_HFS G-DRIVE                *2.0 TB     disk3
    Jamess-iMac-7:~ jamesbowtell$ diskutil mount disk2s2
    Volume on disk2s2 failed to mount
    Jamess-iMac-7:~ jamesbowtell$
    Verifying partition map for “Hitachi HDS721010DLE630 Media”Checking prerequisitesChecking the partition listChecking for an EFI system partitionChecking the EFI system partition’s sizeChecking the EFI system partition’s file systemChecking all HFS data partition loader spacesChecking booter partitionsChecking Core Storage Physical Volume partitionsThe partition map appears to be OK
    Verifying and repairing partition map for “Hitachi HDS721010DLE630 Media”Checking prerequisitesChecking the partition listAdjusting partition map to fit whole disk as requiredChecking for an EFI system partitionChecking the EFI system partition’s sizeChecking the EFI system partition’s file systemChecking all HFS data partition loader spacesChecking booter partitionsReviewing boot support loadersChecking Core Storage Physical Volume partitionsUpdating Windows boot.ini files as requiredThe partition map appears to be OK
    Please help.

    Data Recovery - Recovering Deleted Files
    Data Recovery - Recovering Deleted Files (2)
    Data Recovery – Disk Drill
    Data Recovery – Data Rescue
    Data Recovery – File Salvage
    Data Recovery – Stellar Phoenix
    Data Recovery - uFlysoft

  • MacBook Pro Installation - Failed to Mount Real Root

    Hi, I've been trying to install Arch on my older MBP for years now (2009 model, I think) with a single-boot configuration. I can successfully boot from the USB, where I get to select from three shells to boot in, being:
    Arch Linux archiso x86_64 UEFI USB
    UEFI Shell x86_64 v1
    UEFI Shell x86_64 v2
    Then, I select the first, and stuff just skims by at first, until I end up at something like:
    :: Device /dev/disk/by-label/ARCH_201303' mounted successfully
    :: Mounting /run/archiso/cowspace (tmpfs) filesystem, size=75%...
    :: running late hook [archiso_pxe_common]
    :: running cleanup hook [archiso_shutdown]
    :: running cleanup hook [udev]
    ERROR: Failed to mount real root device
    Bailing out, you are on your own. Good luck.
    Then I'm stuck with a shell as root with barely any commands to use (no fdisk/gdisk/insert-any-partitioning-tool-here), etc. I'm pretty sure this isn't supposed to happen. Is there any guide on how I can fix this? Googling hasn't exactly worked, and I couldn't find anything on the Arch Wiki too easily.
    Thanks for the help!
    Important note:
    Months ago, I got stupid and did try to install CrunchBang (BIOS boot only, obviously). That erased pretty much everything (that includes the EFI partition, etc.) and left me with a few unbootable partitions. So, uh, that is to say, if any suggestion involves booting up from OS X and doing anything, or using rEFInd/rEFIt, it won't work. Thankfully, however, I am able to do most Linux commands as I am currently on my primary system, Linux Mint.
    Last edited by kyeshi_0913 (2013-06-13 23:02:15)

    @ the_isz - Thanks for the read, but no help.
    @swanson - That usb hook was added, this error happens just after the usb module scans the bus. Listing by-label while in RAMFS shows the USB devices.
    Also while in initrd environment:
    [RAMFS /]# blkid
    /dev/sda1: LABEL="BOOT" UUID="d71a5da8-fbdd-4ab9-ba5a-fa2adcda137b" TYPE="ext2"
    /dev/sda2: LABEL="SWAP" UUID="3a437fef-b143-4626-a74c-2332d3a83470" TYPE="swap"
    /dev/sda3: LABEL="SYSTEM" UUID="702e29ad-3f8a-4590-9c97-36a4f0b0262b" TYPE="ext4"
    /dev/sda4: LABEL="HOME" UUID="2ef17520-7602-4855-acee-331535fdb0c7" TYPE="ext4"
    /dev/sdb1: LABEL="USB-BOOT" UUID="3a563c48-850d-410a-afb9-bcd01ed567a5" TYPE="ext2"
    /dev/sdb2: LABEL="USB-SWAP" UUID="980f4f7e-24a2-4347-8595-c61d8f72accf" TYPE="swap"
    /dev/sdb3: LABEL="USB-SYSTEM" UUID="b6d09c53-aed8-494e-b017-df4c3c66b64b" TYPE="ext2"
    lists all partitions, that is USB and hard drive, but attempting to manually mount sdbn (USB partitions) failed.
    [RAMFS /]# mount /dev/sdb3 /new_root
    mount: mounting /dev/sdb3 on /new_root failed: no such device
    Regards,
    Brian

  • Slave drive, CDs, USB drives, Disk Images and FW drives fail to mount

    Hi. I have two Maxtor internal hard drives (6Y160P0 and 6Y120P0), the second of which (6Y120P0) all of a sudden will not mount on the desktop. When I reboot my Mac, I get two identical error windows that state, “The disk you inserted was not readable by this computer”, with options to initialize, ignore, or eject. (There are no other drives of any type connected to the computer).
    Within Disk Utility (when run from the primary hard drive), the slave drive shows up, but its icon is dimmed. Clicking the “Mount” button does nothing. Disk First Aid does not allow one to “Repair Permissions” nor “Repair Disk”, presumably since it won’t mount (eg, these options are dimmed). One odd aspect about Disk Utility is that the master and slave drive are listed as “disk0s10” and “disk1s10”, respectively, rather than the way they usually show up with the names I’ve given them. Yet on the desktop the working master drive shows up with its given name.
    When I run Disk Itility from a CD, both internal drives look fine, accept repairs, and the drives are listed by their proper names.
    As another interesting clue, all of the Disk Images (stored on the working master internal hard drive) that I have attempted to mount fail to open as well. When I doubleclick them, I get an error that reads, “The following disk images failed to mount: Reason: No mountable file systems”.
    Two different USB keychains fail to mount; my FW drive fails to mount.
    I’ve run Applejack Auto Restart without any difficulty several times.
    Apple's Hardware check CD says all is AOK.
    I’ve rebuilt this problematic disk (and the master) several times with Disk Warrior 3.03 and all is supposedly AOK.
    SmartReporter says both disks are fine.
    TechTool Pro 4.1.2 has run the following checks on the problem disk and these are AOK: Disk Controller, SMART, Read/Write.
    All of this makes me wonder if the issue is with my system software, rather than the slave disk??? Interestingly, CDs refuse to mount as well when I've booted from the primary hard drive (but I don't think it is the CD drive itself since I can boot from the CD drive). This, coupled with the fact that disk images won't mount, makes me now think it is an OS issue rather than hardware.
    Any suggestions about what I can do to salvage and fix this problem would be greatly appreciated!
    G4/867MHz running OS 10.4.8

    If anyone else is having this problem, check out the totally awesome post by GNJ to my similar query on the MacFixIt forums:
    Drives and Disk Images refuse to mount
    http://www.macfixitforums.com/showflat.php?Cat=&Board=tiger&Number=791320&Forum= &Words=CharPatton&Match=Username&Searchpage=0&Limit=25&Old=6months&Main=791320&S earch=true#Post791320
    His suggestion to run the 10.4.8 combined PPC update worked like a charm and solved the problem perfectly!
    PS If you are having the same issue, there is the problem that one can't use a USB/FW drive to get the combo updater onto the problematic hard drive, and even if you can, the faulty software won't allow one to mount a .dmg image. This can be solved by using "Target" mode, eg connect the problematic CPU to a working CPU (in this case, my PowerBook) via a FW cable, then boot up the problem CPU while holding down the letter "t". One can then drag the combined updater unstuffed file (eg, not the .dmg) directly to the problematic disk from the working CPU. Then, when I booted in the problematic disk/CPU, all it took was a doubleclick on the unstuffed updater and all was fine.

  • CDs and dmg files failing to mount on an eMac; any suggestions?

    Dear all,
    I have not posted here before and hope someone can assist please; I'm a long-time Apple user, having started with the Apple II and currently owning an iMac G5 and PowerBook G4.
    Having obtained a G4 eMac, I discovered a serious software/hardware for which I can't find a solution. It is running OS X.2.8 which has an issue mounting .dmg and CDs. When I attempt to mount .dmg files, it reports the error message:
    "FILE NAME failed to mount due to error 95. (no mountable file systems)"
    All CDs will not appear on the desktop with the exception of the Apple Hardware Test CD. They do appear through Disk Utility but can't be mounted. I have tried apps such as "Mount" without success.
    Apple has recognised this problem:
    http://docs.info.apple.com/article.html?artnum=106345
    http://docs.info.apple.com/article.html?artnum=107288
    but none of the suggested remedies have worked for me. Various forums suggest solutions, a summary of which may be found here:
    http://www.macattorney.com/tutorial.html#anchor-diskimage
    but none worked.
    I have also tried holding the "c" key with the Install CD but it won't mount.
    Any suggestions please? I can boot with System 9 - as a last resort would it be possible to then delete key files from the OS X's "System" folder, following which I might be able to boot from the "Install" CD?
    Many thanks,
    Peter

    They sometimes say you're better helping yourself!
    I seem to have solved this after many hours of experimentation. I decided to hook up my iMac G5 (running 10.4.11) via a firewire cable. Having started the iMac, I followed the instructions for a target disk, connected the cable and fired up the eMac (hold "T" etc). Within minutes the eMac with its inserted CD could be seen on my iMac's desktop. However, I now needed to see if it worked the other way around - if I could somehow boot up with the eMac and use the iMac as the target disk, putting the CD into the iMac.
    The eMac read the iMac's drive but unfortunately I could not see the inserted CD. Having then turned off the iMac, I left the firewire cable plugged in and then inserted the eMac's Install disk - to my great surprise the Install disk suddenly appeared on the eMac's desktop for the first time! I clicked the Installer which then announced it would start up from the CD. It duly did - and I managed to revert back to System 10.2, rather than the problematic Apple upgrade 10.2.8 which had been installed (and apparently caused the problems).
    I'm trying to obtain a copy of 10.3 Panther, simply to run the excellent Elgato EyeTV.
    Fingers crossed!
    PJD.

Maybe you are looking for

  • IMac is starting with only 2 cpus

    Hello, Two weeks ago my iMac started restarting by itself. It couldn't start the OSX, but restarting just before the login screen. I was investigating this issue for a whole day until I found that if I set boot arguments to CPU=1 it starts just fine.

  • Using xml schema problem (SAP MDM 7.1 Syndicator)

    Good day ! I try to syndicate directory which correspond to some xml-schema and I have a problem. I want to syndicate data from hierarchy table  which have one field which have a type like lookup <Flat> (multivalued). In XML-schema element "DEF_PRODU

  • Using MM drivers

    Hi, Product:           Java Web Application Operating system:     Linux (Redhat 7.3) Web Server:          Apache Application server:     Tomcat 4.0.4 Database server:     MySQL 3.23.49 Java Architecture:     JSP (presentation) + Java Bean (Business l

  • Incopy/indesign version compatibility question

    Hi all, I feel like this should be something easy to find in Adobe's information, but I couldn't find it.  Maybe I'm just slow. OK, we are a small (free) weekly newspaper.  The person who puts the paper together uses InDesign CS5.  We do not currentl

  • Error when restarting ias6.5 in cluster.....

    There are 2 application servers and two ldaps configured in different machines. (i.e) 1 app server and ldap in a single machine same configuration in different machine. When restarting application server, some error was thrown like , KAS was unable t