[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
-
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 folderAfter 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 … bookretinaThanks, 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.8If 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,
PeterThey 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
-
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