== How to force Solaris to renumber network devices Let us suppose, as a not entirely hypothetical example, that you are transplanting the system disks from a Solaris 10 install from a SunFire X2100 to a SunFire X2200. While both machines have four onboard network ports, two Broadcom and two nVidia, they are not quite the same hardware, enough so that if left to its own devices Solaris will consider the new machine's NICs to be _bge2_, _bge3_, _nge2_, and _nge3_ (instead of _bge0_, _bge1_, _nge0_, and _nge1_). This isn't a really desirable result, because it makes the transplanted machines different from any future machines you install on the X2200s (and in turn means that you have to remember any particular install's history when figuring out which network device is which). What you want to do is to force Solaris to renumber the Ethernet devices from scratch, giving them their natural numbers. (As far as I can see, there is no documented way of doing this; a reconfiguration reboot doesn't do it, at least on Solaris 10 U4 and U5.) It turns out that Solaris stores this mapping information in ((/etc/path_to_inst)) in the relatively obvious form of: > _"PATH" INSTANCE "DRIVER"_ The _PATH_ is relative to _/devices_, the _DRIVER_ is what you'd expect, and the _INSTANCE_, for network devices, is the N in bgeN. So what you want to do is edit ((/etc/path_to_inst)) to remove all mention of your network devices and do a reconfiguration reboot, which will recreate them from scratch and should give them the numbers you want. It's possible that you can just directly assign instance numbers to network devices without the reconfiguration reboot, but I haven't tested this. (Important: *make a backup of the file first*, just in case.) When I did this it took two go-arounds to get the nVidia devices correct; you might be able to get it down to one by doing the editing in the rescue environment instead of booting the system into normal single-user mode. If you go this route, you'll need to rebuild the boot archive by hand (with '_bootadm update-archive -R /a_'). Oh yes, and here's an important safety tip that I learned the hard way: ~~under no circumstances should you use ((rem_drv))~~ (what can I say, it looked like a tempting way to force a full reconfiguration of the driver from scratch). Doing so removes the information about which PCI devices are handled by the driver, which is hard to recover from unless you have a spare Solaris 10 machine (ideally with the same hardware) around to consult as reference. (This mapping information is stored in ((/etc/driver_aliases)); the base version of ((driver_aliases)) comes from the _SUNWcsd_ package but it's then modified by the install scripts of various driver packages.)