Transferring data from Windows 10 to Mac, Ethernet problem
June 5, 2021 8:22 PM Subscribe
I've been trying to transfer data from my Dell laptop (Windows 10) to new MacBook Air (I think Big Sur is the OS--whatever's newest) for over a week now, and I'm not having any luck with Migration Assistant, Ethernet, or USB. I prefer Ethernet, but I think Ethernet connectivity is the main obstacle. I have tried many many things, and I'll try to remember them below the fold. Thanks for any insight you can give.
I'm hoping to do this via Ethernet.
I started by connecting the laptops side by side, Mac on right, using an ethernet adapter.
I turned on file sharing on on my PC and disabled the firewall everythwere.
Tried sharing files (right-click, then share) but they didn't show up on my Mac screen.
I've been resetting adapters, reinstalling / updating drivers, turning WiFi off, using trouble-shooters, and nothing.
Sometimes I see lights blink on the end plugged into the Mac, so it seems like it does something.
Perhaps the biggest clue is that on my Mac it says the Ethernet has a self-assigned IP address. The router has no IP address there. I've googled this and tried fixes (like this and this) and also everything here.
Does anyone know of a better thing to try?
I'm hoping to do this via Ethernet.
I started by connecting the laptops side by side, Mac on right, using an ethernet adapter.
I turned on file sharing on on my PC and disabled the firewall everythwere.
Tried sharing files (right-click, then share) but they didn't show up on my Mac screen.
I've been resetting adapters, reinstalling / updating drivers, turning WiFi off, using trouble-shooters, and nothing.
Sometimes I see lights blink on the end plugged into the Mac, so it seems like it does something.
Perhaps the biggest clue is that on my Mac it says the Ethernet has a self-assigned IP address. The router has no IP address there. I've googled this and tried fixes (like this and this) and also everything here.
Does anyone know of a better thing to try?
Share from the Mac to the Windows side. You can enable File Sharing via the System Preferences applet. Apple has better SMB support, oddly enough.
posted by They sucked his brains out! at 8:59 PM on June 5, 2021 [3 favorites]
posted by They sucked his brains out! at 8:59 PM on June 5, 2021 [3 favorites]
So the first thing to know is that, as far as I can figure, Migration Assistant hates Ethernet. That's probably not the sole source of your problems, but it's a start.
posted by wotsac at 9:04 PM on June 5, 2021
posted by wotsac at 9:04 PM on June 5, 2021
You might try turning wireless off on the Mac, and it should find a DHCP based IP address for that ethernet adapter. What is the Mac ethernet cable plugged into on the other end? Is there an ethernet port on the router?
posted by nickggully at 9:06 PM on June 5, 2021
posted by nickggully at 9:06 PM on June 5, 2021
Are these two computers directly connected to each other and not, say, a router that provides DHCP to both of them? If so, either connect them via a router or configure both of them with static IP addresses (e.g. 192.168.1.1 and 192.168.1.2, both with the subnet mask 255.255.255.0). One or both of them will complain about not having an internet connection, but that should work for what you need.
You shouldn't need a crossover cable specifically, as the ports are smart enough to figure that out on their own now.
posted by fedward at 9:12 PM on June 5, 2021 [6 favorites]
You shouldn't need a crossover cable specifically, as the ports are smart enough to figure that out on their own now.
posted by fedward at 9:12 PM on June 5, 2021 [6 favorites]
Apple devices do not need crossover cables. Their Ethernet ports are smart enough to figure that out.
posted by They sucked his brains out! at 9:18 PM on June 5, 2021 [2 favorites]
posted by They sucked his brains out! at 9:18 PM on June 5, 2021 [2 favorites]
Should be easier to do adhoc Wifi instead of Ethernet. But I'm just guessing.
posted by kschang at 9:55 PM on June 5, 2021
posted by kschang at 9:55 PM on June 5, 2021
I think fedward has it right, if you're just connecting an ethernet cable directly between machines. At present both of your machines are probably looking for a DHCP server that isn't there.
posted by pompomtom at 12:36 AM on June 6, 2021
posted by pompomtom at 12:36 AM on June 6, 2021
No need for a crossover cable.
There's a standard for addressing link-local connections, confirm on both sides what the device is calling itself. They will be 172.16… for IPv4 or fe80:: for IPv6 type of numbers.
Use ping to confirm the link works in both directions.
Configure fileshares once you know the link works.
Specify the network connection in Finder on the Mac with Cmd-Shift-k. Enter usernames and passwords if you set them up.
Copy the files.
posted by k3ninho at 2:14 AM on June 6, 2021 [2 favorites]
There's a standard for addressing link-local connections, confirm on both sides what the device is calling itself. They will be 172.16… for IPv4 or fe80:: for IPv6 type of numbers.
Use ping to confirm the link works in both directions.
Configure fileshares once you know the link works.
Specify the network connection in Finder on the Mac with Cmd-Shift-k. Enter usernames and passwords if you set them up.
Copy the files.
posted by k3ninho at 2:14 AM on June 6, 2021 [2 favorites]
The main thing to understand in order to de-confuse yourself about network addresses is that a network address is a thing that belongs to an interface, not to a computer. So your Mac's Ethernet interface and its WiFi interface and its BlueTooth interface will and should have different addresses.
Next thing to know is that there are two different kinds of network address in common use: Internet Protocol (IP) addresses and Media Access Control addresses (usually referred to as MAC addresses, which is confusing if you own a Mac).
If you ever see something like
Knowing that
Trouble, because IP is a horrible protocol stack designed by a boys' club of Very Clever Engineers who gave zero consideration to the idea that what they were building might one day need to be used by non-members of the engineering priesthood. If IP ever behaves in a straightforward plug-and-play fashion that's because a bunch of other protocols are helping it do that.
The most reliable of these is DHCP, the Dynamic Host Configuration Protocol. DHCP's job is to assign non-conflicting IP addresses and other configuration information (e.g. name server addresses, time server addresses) to a collection of interfaces that are connected together in such a way that they can all see each other's network broadcasts, i.e. packets sent to a special MAC address that means "anybody physically capable of detecting this packet". Making DHCP work requires that a DHCP server is running on one of the devices behind any such interface. For computers connected together using a router, the DHCP server usually lives inside the router.
There's another whole set of protocols called zeroconf that can do some of what DHCP does but without needing a DHCP server, and most modern operating systems will fall back to that if they see no responses to their DHCP request broadcasts within about ten seconds. IP addresses assigned by zeroconf are always in the range 169.254.x.x, where the x.x part is supposed to be unique per interface.
If you just plug a Windows box and a Mac together with a single Ethernet cable, then both of them will detect the cable and start broadcasting DHCP requests over it. Since neither machine contains a DHCP server, neither will see any DHCP responses and eventually both of them will fall back to assigning themselves 169.254.x.x IP addresses using zeroconf. These are the "self-assigned" IP addresses your Mac is reporting and because Mac OS and Windows both implement zeroconf they should be completely workable for the use case you're trying to set up.
As I mentioned earlier, these addresses exist per interface. So the fact that your Ethernet interface might end up with a 169.254.x.x self-assigned IP address that your router knows nothing about is not a problem; believe it or not, that's how it's all supposed to work.
Which means that trying to "fix" self-assigned IP addresses is probably a waste of time. Let's see if we can just make them work the way they're designed to. After all, this kind of use case is exactly what they're supposed to be for.
First thing is to find out whether the machines can actually exchange IP traffic at all. The easiest tools to use for this are command-line based.
Plug the two boxes together with the Ethernet cable and leave them sit for fifteen seconds to let
On the Mac, open a Terminal window, type ifconfig and hit Enter. From the resulting spew, pick out the 169.254.x.x IP address belonging to the Ethernet interface and write it down. I'll refer to that result as 169.254.m.m from now on, so wherever you see that, use the address you wrote down here instead.
On the Windows box, open a cmd window, type ipconfig /all and hit Enter. From the resulting spew, pick out the 169.254.x.x. IP address belonging to the Ethernet interface and write it down. I'll refer to that result as 169.254.w.w from now on, so wherever you see that, use the address you wrote down here instead.
If you've successfully written down a pair of IP addresses, the next thing to try is pinging each box from the other. In the Mac's Terminal window, type ping 169.254.w.w and hit Enter. If the Mac can successfully ping the Windows box, you'll see lines like
Next, in the Windows cmd window, type ping 169.254.m.m and hit Enter. Interpret the results as you would for the Mac version, except that the Windows ping will stop by itself after four pings instead of needing Ctrl-C.
What to do next will depend on these ping results, so post them here and let's see where we go next.
posted by flabdablet at 2:44 AM on June 6, 2021 [6 favorites]
Next thing to know is that there are two different kinds of network address in common use: Internet Protocol (IP) addresses and Media Access Control addresses (usually referred to as MAC addresses, which is confusing if you own a Mac).
If you ever see something like
00:1d:09:5e:23:1f
then that will be a MAC address. MAC addresses are pre-assigned at the factory: every interface has its own unique MAC address built in. That makes them a nice straightforward way to identify sources and destinations of network packets, but they contain no information at all about where the interface they belong to might reside in the world or how to find a connection path to it if you've never talked to it before.Knowing that
00:1d:09:5e:23:1f
is the MAC address of the Ethernet interface on the laptop I'm using right now does not help if you want to connect to it over the Internet. To make that possible, that interface also needs an Internet Protocol (IP) address assigned to it and this is where the trouble starts.Trouble, because IP is a horrible protocol stack designed by a boys' club of Very Clever Engineers who gave zero consideration to the idea that what they were building might one day need to be used by non-members of the engineering priesthood. If IP ever behaves in a straightforward plug-and-play fashion that's because a bunch of other protocols are helping it do that.
The most reliable of these is DHCP, the Dynamic Host Configuration Protocol. DHCP's job is to assign non-conflicting IP addresses and other configuration information (e.g. name server addresses, time server addresses) to a collection of interfaces that are connected together in such a way that they can all see each other's network broadcasts, i.e. packets sent to a special MAC address that means "anybody physically capable of detecting this packet". Making DHCP work requires that a DHCP server is running on one of the devices behind any such interface. For computers connected together using a router, the DHCP server usually lives inside the router.
There's another whole set of protocols called zeroconf that can do some of what DHCP does but without needing a DHCP server, and most modern operating systems will fall back to that if they see no responses to their DHCP request broadcasts within about ten seconds. IP addresses assigned by zeroconf are always in the range 169.254.x.x, where the x.x part is supposed to be unique per interface.
If you just plug a Windows box and a Mac together with a single Ethernet cable, then both of them will detect the cable and start broadcasting DHCP requests over it. Since neither machine contains a DHCP server, neither will see any DHCP responses and eventually both of them will fall back to assigning themselves 169.254.x.x IP addresses using zeroconf. These are the "self-assigned" IP addresses your Mac is reporting and because Mac OS and Windows both implement zeroconf they should be completely workable for the use case you're trying to set up.
As I mentioned earlier, these addresses exist per interface. So the fact that your Ethernet interface might end up with a 169.254.x.x self-assigned IP address that your router knows nothing about is not a problem; believe it or not, that's how it's all supposed to work.
Which means that trying to "fix" self-assigned IP addresses is probably a waste of time. Let's see if we can just make them work the way they're designed to. After all, this kind of use case is exactly what they're supposed to be for.
First thing is to find out whether the machines can actually exchange IP traffic at all. The easiest tools to use for this are command-line based.
Plug the two boxes together with the Ethernet cable and leave them sit for fifteen seconds to let
On the Mac, open a Terminal window, type ifconfig and hit Enter. From the resulting spew, pick out the 169.254.x.x IP address belonging to the Ethernet interface and write it down. I'll refer to that result as 169.254.m.m from now on, so wherever you see that, use the address you wrote down here instead.
On the Windows box, open a cmd window, type ipconfig /all and hit Enter. From the resulting spew, pick out the 169.254.x.x. IP address belonging to the Ethernet interface and write it down. I'll refer to that result as 169.254.w.w from now on, so wherever you see that, use the address you wrote down here instead.
If you've successfully written down a pair of IP addresses, the next thing to try is pinging each box from the other. In the Mac's Terminal window, type ping 169.254.w.w and hit Enter. If the Mac can successfully ping the Windows box, you'll see lines like
64 bytes from 169.254.w.w: icmp_seq=1 ttl=64 time=0.424 msappearing about once per second. If it can't, you'll see lines like
From 169.254.m.m icmp_seq=1 Destination Host UnreachablePress Ctrl-C to stop the ping results and get the command prompt back.
Next, in the Windows cmd window, type ping 169.254.m.m and hit Enter. Interpret the results as you would for the Mac version, except that the Windows ping will stop by itself after four pings instead of needing Ctrl-C.
What to do next will depend on these ping results, so post them here and let's see where we go next.
posted by flabdablet at 2:44 AM on June 6, 2021 [6 favorites]
Plug the two boxes together with the Ethernet cable and leave them sit for fifteen seconds to let
them give up on DHCP and self-assign zeroconf IP addresses instead.
Edit window grrr.
posted by flabdablet at 2:50 AM on June 6, 2021
them give up on DHCP and self-assign zeroconf IP addresses instead.
Edit window grrr.
posted by flabdablet at 2:50 AM on June 6, 2021
If Zeroconfig has worked, then you might be able to use mac-computer-name.local and win-computer-name.local when you ping to check the connection is good.
The ifconfig or ipconfig should list those computer names.
posted by k3ninho at 6:17 AM on June 6, 2021
The ifconfig or ipconfig should list those computer names.
posted by k3ninho at 6:17 AM on June 6, 2021
If you want to connect them directly, you will have to enable "internet connection sharing" on one or the other machine. Do not do both.
posted by nickggully at 7:50 AM on June 6, 2021
posted by nickggully at 7:50 AM on June 6, 2021
Best answer: Depending on exactly where the process is breaking down, Internet Connection Sharing might or might not help.
Personally I favour trying the simplest possible setup, finding out definitively what's actually going wrong with it, and fixing that rather than trying random suggestions. There are a lot of ways that network file sharing can go wrong so there are endless random suggestions.
I can't think of a simpler setup than one Ethernet patch cable directly connecting two machines, and it should be possible to get that to work. The fact that it's even hard is a shocking indictment of the piss-poor state of networking design in 2021.
posted by flabdablet at 8:34 AM on June 6, 2021 [2 favorites]
Personally I favour trying the simplest possible setup, finding out definitively what's actually going wrong with it, and fixing that rather than trying random suggestions. There are a lot of ways that network file sharing can go wrong so there are endless random suggestions.
I can't think of a simpler setup than one Ethernet patch cable directly connecting two machines, and it should be possible to get that to work. The fact that it's even hard is a shocking indictment of the piss-poor state of networking design in 2021.
posted by flabdablet at 8:34 AM on June 6, 2021 [2 favorites]
It's tempting to do this using a network, yet USB drives are ubiquitous and cheap. Why not just drag and drop folders and files onto an MS formatted drive and then plug it into the Mac and drop copy your files off the external drive? Fast and easy, fairly simple to do.
In terms of networking, both your machines have to be pingable on the same subnet, so they are not behind a router or other IP range. It can be kind of hit or miss using network browsers for the machine you want. You have to have file sharing set up correctly on the host machine or you could make your volume accessible as guest which is not a great outcome.
So, unless you have a need to use the network locally for file sharing regularly, use an external USB drive. If you want to do the network thing, better to have NAS on all the time as your backup server, then mount the NAS on your local device and copy to and from as needed.
Macs used to be able to boot up in target mode, holding down the 'T' key at startup. It would mount the Mac internal drive just like an external drive via a firewire connection. Dunno if that's still viable in the USB C world, but worth a google search to see what options are there.
posted by diode at 12:05 PM on June 6, 2021
In terms of networking, both your machines have to be pingable on the same subnet, so they are not behind a router or other IP range. It can be kind of hit or miss using network browsers for the machine you want. You have to have file sharing set up correctly on the host machine or you could make your volume accessible as guest which is not a great outcome.
So, unless you have a need to use the network locally for file sharing regularly, use an external USB drive. If you want to do the network thing, better to have NAS on all the time as your backup server, then mount the NAS on your local device and copy to and from as needed.
Macs used to be able to boot up in target mode, holding down the 'T' key at startup. It would mount the Mac internal drive just like an external drive via a firewire connection. Dunno if that's still viable in the USB C world, but worth a google search to see what options are there.
posted by diode at 12:05 PM on June 6, 2021
Gigabit Ethernet is good for file transfer rates of around 100 megabytes per second, which is very useful if you've got a lot of stuff to move. Pretty rare to find a USB drive that will support that kind of transfer rate either onto or off the drive, let alone overall.
That said, you can move a lot of stuff on and off of USB drives in "over a week".
That said, I'm more than happy to help continue to work this networking nonsense out with you if it's gone past the point of pragmatism and the aim of the exercise has now become to demonstrate to yourself and to these ridiculous little electric contrivances that they shall bend to your will, which is an attitude I can only approve of. Machines can sense fear. If you let them, they take liberties.
posted by flabdablet at 8:52 PM on June 6, 2021 [1 favorite]
That said, you can move a lot of stuff on and off of USB drives in "over a week".
That said, I'm more than happy to help continue to work this networking nonsense out with you if it's gone past the point of pragmatism and the aim of the exercise has now become to demonstrate to yourself and to these ridiculous little electric contrivances that they shall bend to your will, which is an attitude I can only approve of. Machines can sense fear. If you let them, they take liberties.
posted by flabdablet at 8:52 PM on June 6, 2021 [1 favorite]
This thread is closed to new comments.
Do you have a modem/router/wi-fi access point with multiple RJ45 (ethernet) inputs? If so, your easiest option by far is to plug them both into that with their own patch cables. If not, you can buy a crossover cable or a crossover adapter to connect two patch cables for not much money.
posted by holgate at 8:57 PM on June 5, 2021 [2 favorites]