Recommended Posts

TLDR: OneDrive is slow on every OS I've tried on my mom's PC and I'm having a time migrating it from Windows 10 to Linux because the website isn't working for large downloads and the clients take literal lifetimes to sync.

Story time...

My older mom has multiple PCs.  She's got a laptop that runs Windows 11 and a mac mini she's learning how to use in the kitchen, but her main office desktop is one I built for her years ago that runs, or "ran" Windows 10 and isn't compatible with Windows 11.  With support for 10 ending and after talking to me, she decided that rather than replace the computer altogether or pay for extended support for 10, as long as I could migrate her data for her, she'd just use Linux on it.  I have let her test drive Debian off and on for a while now.  So I went to her house, grabbed the tower and brought it home with me, made a dd image of her internal mass storage drive (3 TB spinning rust) and used Clonezilla to make a backup image of her boot SSD, then nuked everything and installed Debian.  I know Linux supports NTFS, but one thing it doesn't support is the weird filesystem pointers that Windows uses for its OneDrive folder.  On Windows, the OneDrive folder just looks like a folder with files in it.  On Linux, the OneDrive folder looks like an empty file named "OneDrive" with a size of 0 bytes, which I'm assuming uses some kind of fancy pointer to reference data hidden somewhere else on the drive in a database or something.

The good news is, besides making a dd backup image of the entire drive, I also (from within Windows) just did a plain old copy and paste of her OneDrive folder to a separate drive because I encountered this issue once before years ago doing some data recovery for her when a hard drive died, though I don't remember specifics of where the data was actually stored.  I know OneDrive, unless you configure it not to, tries to intelligently delete local files to free up disk space, and replaces them with virtual pointer files that trigger a download of the real file from OneDrive when/if it's accessed.  I had disabled this feature before on this very machine and told it to keep all data local, but that option seems to have gotten reverted at some point because, sure enough, out of over 800 GB of data stored in her OneDrive, there was only about 150 GB of real data physically on the drive in the computer and the option had reverted to its default setting.

So anyway, to make sure everything was nice and clean with no weird hidden OneDrive databases taking up hundreds of gigabytes of space without my knowledge, and to give better Linux compatibility, I reformatted the internal 3TB drive to ext4, rsync'd all the files Linux can see out of the dd image and restored the OneDrive contents I had copied and pasted back to the internal storage drive.  Then I installed the "onedrive" package from the Debian repos and found a program just called "OneDriveGUI" that is basically exactly that, just a GUI for an existing installation of the "onedrive" package.  It works great, but I've made one observation.

Even when she ran Windows, OneDrive "never", not one time that I ever saw, just gave her a green check and said it was done.  She pays for Office 365 personal because she likes and is familiar with Microsoft Office, so she has the 1TB plan for OneDrive.  Regardless, every time I visited to check on her PCs it was in a state of "Processing 500,000 changes...", and any time she made a change to a file it was a WHILE before it reflected on the website, and therefore onto her other devices, like her phone.  She has 2 Gb/s symmetric home internet with no data caps.  I always just assumed that slowness was just Windows being Windows, because Windows was noticeably slower than Debian is now, and used more RAM.  However, now even on Debian, this OneDrive client is also really slow.  It spent the better part of all night burning 30%-35% of her CPU (AMD Ryzen 3 2200G) at any given time just indexing the drive's contents to figure out what it needed to download, and now that it's actually downloading files, it's doing it at anywhere from 20 kB/s to, if it's doing really good, 300 kB/s.  One good thing is that, having seen her previous issues with OneDrive on Windows, I had a copy of most of her data physically stored on a backup drive she had down there; I used the task scheduler to run a batch file once per week that used rclone to sync her local drive with the external backup drive because I had a feeling I would need it at some point.  So between combining those older manual backups with the latest current status of her OneDrive folder (copy and paste right before wipe) I was able to get it up to about 600 GB, but that means it still has a little over 200 GB left to download at those mind blowing speeds of up to 300 kB/s, not to mention indexing the drive and updating/re-downloading any of those files that have changed since the last time that rclone script ran...

Another pain point is that I had the thought of just downloading the files manually from the OneDrive website prior to syncing so the client would have less to download, but that doesn't seem to work reliably either.  I tried twice to just download her Music folder, which is about 80 GB.  The first attempt got me a 20 GB zip file, the second attempt got me an 8 GB zip file.  Both downloads said they completed "successfully", though obviously neither of these were actually complete, and when I tried opening them to check the archives were incomplete/corrupted and wouldn't open.  I've got the machine hard wired and not using wifi.  My internet is generally very reliable and is symmetric gigabit with no data caps, so I'm about 99% certain the issue with downloading those files lies with the OneDrive website and not my network connection.

By comparison, and I know this isn't "entirely" fair since Microsoft has far more users (but they also have far better servers), but I have a little over 400k files synced to my personal Nextcloud server just in my account (not counting my wife and kids) and whenever there's a change it takes about 5 seconds to detect it and then syncs it at the full speed of my local area network (in excess of 100 MB/s).  That's not counting the about 30ish TB of other data that lives on the same server being used by other services, which it has no issues keeping indexed.  I'm kinda left wondering if Microsoft is intentionally throttling traffic to/from OneDrive.

Is OneDrive really just this bad?  I can make it work for her, and I'd like to since she's used to it, she's already paying for it and I can make it work in an environment that looks enough like Windows to not be completely alien for her (though is there a client for macOS that I could put on her mac mini?).  The last thing I want to do, after migrating her to an entirely different OS, is to also tell her she needs to switch cloud providers.  Honestly, I'm surprised but she is the one who brought up Linux to me because she knows we use it and didn't want to replace her computer.  I offered her space on my Nextcloud server a couple years ago because I even have Collabora Office integrated into it so you can use it to create and edit office documents right in the browser, but I ended up just taking her back off it because she continued to pay for OneDrive regardless and I felt like having multiple cloud storage services just confused her more than helped her because she was never quite sure where certain files were.  It's just a little annoying to see something that she's paying money for that seems to be this plain bad, even when she was using it on Windows, and yet she's used to it so I don't want to shake up her workflow even more by asking her to get rid of it.  I've had to put in enough work backing up and migrating her data, converting her iTunes playlists to m3u and getting them imported to something else, etc.

image.thumb.png.722d20ffb8d33da9c031501f0fc12d39.png

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Posts

    • Google are hyprocrites for signing this. They have been pulling the same dirty tactics as Microsoft, only they do it on Android and ChromeOS.
    • In some countries the law has forced Microsoft to display a menu on a fresh install of Windows which asks which web browser you want and it will install that browser. This doesn't add any bloat to Windows. It simply an additional step when setting up a new PC.
    • Chrome is also a first party browser on Android and ChromeOS. And on those systems, Google is pulling the same dirty tactics as Microsoft does on Windows.
    • Unofficial script lets you install unreleased Windows 11 features without Microsoft Account by Sayan Sen Microsoft has been steadily evolving the Windows Insider Program over the years, introducing new channels and testing paths that allow enthusiasts to experience upcoming and yet-to-be-released Windows features (some interesting hidden ones too) before they reach the public. However, one long-standing requirement has remained largely unchanged as users are generally expected to enroll in the Program and with a Microsoft account. That's where a third-party tool called "OfflineInsiderEnroll" can help. OfflineInsiderEnroll is said to be a lightweight script that enables access to Windows Insider Program builds on systems that are not signed in with a Microsoft account. Essentially the tool configures the necessary Insider settings locally and hence allows users to select and switch between available preview channels while continuing to receive builds through the normal Windows Update channel. If you are wondering how it manages to do so, it is made possible by a Registry value known as TestFlags. When configured to"0x20", Windows stops communicating with Microsoft's online Insider enrollment services thus preventing locally configured Insider settings from being overwritten. This allows the script to apply its own channel configuration directly through the Registry as Windows Update does not verify whether a device has been officially enrolled in the Insider Program or not. Previously the utility has had already supported the traditional Insider branches including Dev, Beta, and Release Preview. However following Microsoft’s recent restructuring of its preview channels, the script has now been updated. The latest OfflineInsiderEnroll version, 2.6.6, adds support for the newly introduced Insider channel lineup. As such, users can now choose from several Experimental channels in addition to Beta and Release Preview options. The update also retains tools for refreshing the Insider cache, resetting Insider settings, and completely stopping Insider enrollment when needed. Keep in mind though that will need elevated privileges when running the script (run as Admin). You can get the latest version of OfflineInsiderEnroll from this page on its official GitHub repo.
    • The "Classic" Outlook has done that for a few years as well. The option to even change that is really hidden away too... It really shouldn't be hard to respect user defaults. Sadly we are the product now, not Outlook. To change in the Classic Outlook: File > Options > Advanced > change "Open hyperlinks from Outlook in"
  • Recent Achievements

    • Week One Done
      Dr Jared Dental Studio earned a badge
      Week One Done
    • Week One Done
      RG INVESTMENT GROUP earned a badge
      Week One Done
    • Very Popular
      The Norwegian Drone Pilot earned a badge
      Very Popular
    • Very Popular
      s0nic69 earned a badge
      Very Popular
    • Collaborator
      Asgardi earned a badge
      Collaborator
  • Popular Contributors

    1. 1
      +primortal
      472
    2. 2
      PsYcHoKiLLa
      250
    3. 3
      Skyfrog
      79
    4. 4
      FloatingFatMan
      67
    5. 5
      Michael Scrip
      60
  • Tell a friend

    Love Neowin? Tell a friend!