Shirt Pocket Discussions

Shirt Pocket Discussions (http://www.shirt-pocket.com/forums/index.php)
-   General (http://www.shirt-pocket.com/forums/forumdisplay.php?f=6)
-   -   Help needed - shell script to boot up from source drive after copy completes (http://www.shirt-pocket.com/forums/showthread.php?t=1310)

jaimev 05-25-2006 10:30 PM

Help needed - shell script to boot up from source drive after copy completes
 
I have an iMac G5 (iSight), running 10.4.5, with the latest 2.1.1 SuperDuper and I have two external drives named "A" and "B".

When I use Super Duper, I boot from the "A" disk, and copy the iMac disk to B.

After the copy completes, I'd like to automatically select the iMac disk as the Startup volume, and then reboot.

It looks like there's a way to execute a shell script after Super Duper completes, but I have no ideea how to write shell commands to set the startup disk to Imac, and restart.

Any ideas?

dnanian 05-25-2006 10:48 PM

This isn't a really easy thing to do, but given fixed paths, you could do something like:

Code:

#! /bin/sh
if [ -a /Volumes/A/System/Library/CoreServices/BootX ]; then
  UCHGSET=$(ls -lo /Volumes/A/System/Library/CoreServices/BootX | grep -vqF uchg; echo $?);
  chflags nouchg /Volumes/A/System/Library/CoreServices/BootX;
  bless -folder /Volumes/A/System/Library/CoreServices -save9 -label A -setBoot;

  if [ $UCHGSET -eq 1 ]; then
      chflags uchg /Volumes/A/System/Library/CoreServices/BootX;
  fi;

  echo "Successfully set A as startup disk";
else
  echo "Could not set A as the startup disk because it does not contain a valid Mac OS X System Folder.";
  exit 1;
fi

nohup /bin/bash -c "sleep 10; /Applications/SuperDuper!.app/Contents/Resources/Scripts/restart.scpt"&


jaimev 05-27-2006 01:15 AM

Thanks for the shell script. The line...

Code:

chflags nouchg /Volumes/A/System/Library/CoreServices/BootX;
gave permissions problems for me when I tried executing that script.

What ended up working, though was the following Applescript, which is called by a shell script, which is called by Super Duper

The Applescript:

Code:

tell application "Finder" to exists disk "iMac"

--change the boot volume and restart if the result is true

if the result then do shell script "/usr/sbin/bless -folder '/Volumes/iMac/System/Library/CoreServices' -setOF;/sbin/shutdown -r now" password "admin_password" with administrator privileges --put your admin password in for "admin_password", otherwise it will use a pop up dialog to ask the password.

And the shell script that calls it:

Code:

#! /bin/sh

osascript /Volumes/A010/Users/jaimev/Documents/boot-from-Imac-app.app


dnanian 05-27-2006 09:22 AM

Um, I wouldn't do that, actually -- shutdown is a pretty severe way of restarting the system!

Instead, you'll find the script I provided *will* work if you run it authenticated (sudo), as SuperDuper does.


All times are GMT -4. The time now is 08:33 PM.

Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.