4

My server lives in a data center, 1,000 miles away. This Mac has two hard drives, a primary and a backup. Both are bootable and have the same network settings, so I can switch back and forth between them, remotely. (Screen sharing, System Prefs, Startup Disk).

I just put a new server in service today. Before boxing it up, I use a keyboard and mouse to change the server's IPs from my LAN IPs, to my public IPs. Server went in to service and all was good. Until I rebooted.

I forgot to change the backup drive's network settings. So when I boot off of the backup drive, the computer is live on the internet with an IP of 172.16.0.7. No bueno.

I was able to get the server booted back up off of the primary drive, so I'm in service for now. But I have no physical access to this machine. What I need is:

A way to change the IP address of both ethernet interfaces, on the Backup hard drive, while I am booted up off of the Primary hard drive. If I'm lucky, there's a .plist somewhere I can edit and life will be good. If I'm unlucky, Apple will have some truly insane way of storing IP settings, and it won't be possible to do this at all.

Note: This is an El Capitan install.

2

Network configuration information is stored in

/Library/Preferences/SystemConfiguration/preferences.plist

To change the manual IP address assignment, change the string value at

NetworkServices:GUID:IPv4:Addresses:0

To find the right GUID, see the UserDefinedName value for each service.

If ConfigMethod is set to DCHP, the Addresses array is ignored. See the screenshot below for an example of DCHP configuration (Wi-Fi) vs manual (LAN).

  • What are your thoughts of simply taking the plist file from the good boot drive, and copying it over to the 'bad' boot drive? The network config of both machines should be identical. I'm just nervous because I have no easy way to correct it if something goes wrong. – l008com Dec 19 '18 at 0:09
  • I'm not sure how these GUIDs come in to play. Ethernet 1 has the same GUID on both configurations, but Ethernet 2, and the VPN interface also on Ethernet 1 both have different GUIDs. How does that GUID get attached to an actual, physical network port? – l008com Dec 19 '18 at 0:41
  • Confirmed: Editing this file worked. Since I had already properly edited all my network interfaces previously, including names, I just copied the IPv4 and DNS settings from the same named interfaces on my good drive. GUIDs didn't all match across plists but everything else did. I rebooted, crossed my fingers, and got right in to the backup drive. Very stressful but it worked! – l008com Dec 19 '18 at 10:27
  • 1
    @l008com I’m not sure how the GUID assignment works, but the physical/virtual interfaces are in NetworkInterfaces.plist which assigns the interface a name (e.g. en0), which preferences.plist stores in the Interface dictionary. I’d be hesitant to copy the entire file over but rather just edit the network configuration manually in the existing preferences.plist, which appears to be what you’ve done and works! – grg Dec 19 '18 at 10:34

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .