ppy / osu

rhythm is just a *click* away!
https://osu.ppy.sh
MIT License
15k stars 2.21k forks source link

Duplicate drive entries in folder selector on macOS if Time Machine is enabled #28103

Open ILW8 opened 4 months ago

ILW8 commented 4 months ago

Type

Game behaviour

Bug description

As far as I can tell, if Time Machine is enabled, a drive can appear multiple times in the folder selector with no obvious way of distinguishing which one is which; you can tell that it was a Time Machine path if you look at the breadcrumbs after clicking the drive, but most of the time, after clicking the drive you will already be looking at the list of subdirectories.

There is a read-only filesystem check when trying to move the osu! folder, but if you select an existing osu! folder, then the read-only fs check isnt run and osu! will crash on next startup with System.IO.IOException: Read-only file system:

Unhandled exception. System.IO.IOException: Read-only file system : '/Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/Dao’s MacBook Pro/2024-05-03-211757/970evo+/osu_lazer_macos/client_1714852528_corrupt.realm'
   at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirError)
   at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String path, OpenFlags flags, Int32 mode, Boolean failForSymlink, Boolean& wasSymlink, Func`4 createOpenException)
   at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, UnixFileMode openPermissions, Int64& fileLength, UnixFileMode& filePermissions, Boolean failForSymlink, Boolean& wasSymlink, Func`4 createOpenException)
   at System.IO.Strategies.OSFileStreamStrategy..ctor(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, Nullable`1 unixCreateMode)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access)
   at osu.Framework.Platform.NativeStorage.GetStream(String path, FileAccess access, FileMode mode)
   at osu.Game.IO.WrappedStorage.GetStream(String path, FileAccess access, FileMode mode) in /Users/daohe/RiderProjects/osu/osu.Game/IO/WrappedStorage.cs:line 73
   at osu.Game.Database.RealmAccess.createBackup(String backupFilename) in /Users/daohe/RiderProjects/osu/osu.Game/Database/RealmAccess.cs:line 1157
   at osu.Game.Database.RealmAccess.prepareFirstRealmAccess() in /Users/daohe/RiderProjects/osu/osu.Game/Database/RealmAccess.cs:line 331
   at osu.Game.Database.RealmAccess..ctor(Storage storage, String filename, GameThread updateThread) in /Users/daohe/RiderProjects/osu/osu.Game/Database/RealmAccess.cs:line 203
   at osu.Game.OsuGameBase.load(ReadableKeyCombinationProvider keyCombinationProvider, FrameworkConfigManager frameworkConfig) in /Users/daohe/RiderProjects/osu/osu.Game/OsuGameBase.cs:line 270
   at osu.Game.OsuGameBase.<>c.<RegisterForDependencyActivation>b__154_0(Object t, IReadOnlyDependencyContainer d) in /Users/daohe/RiderProjects/osu/osu.Game/osu.Framework.SourceGeneration/osu.Framework.SourceGeneration.Generators.Dependencies.DependencyInjectionSourceGenerator/g_osu.Game.OsuGameBase_Dependencies.cs:line 16
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.Activate[T](T obj, IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Allocation.DependencyContainer.Inject[T](T instance)
   at osu.Framework.Graphics.Drawable.InjectDependencies(IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Graphics.Containers.CompositeDrawable.InjectDependencies(IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Graphics.Drawable.load(IFrameBasedClock clock, IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Graphics.Drawable.Load(IFrameBasedClock clock, IReadOnlyDependencyContainer dependencies, Boolean isDirectAsyncContext)
   at osu.Framework.Graphics.Containers.CompositeDrawable.loadChild(Drawable child)
   at osu.Framework.Graphics.Containers.CompositeDrawable.load(ShaderManager shaders, Nullable`1 cancellation)
   at osu.Framework.Graphics.Containers.CompositeDrawable.<>c.<RegisterForDependencyActivation>b__206_0(Object t, IReadOnlyDependencyContainer d)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.Activate[T](T obj, IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Allocation.DependencyContainer.Inject[T](T instance)
   at osu.Framework.Graphics.Drawable.InjectDependencies(IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Graphics.Containers.CompositeDrawable.InjectDependencies(IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Graphics.Drawable.load(IFrameBasedClock clock, IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Graphics.Drawable.Load(IFrameBasedClock clock, IReadOnlyDependencyContainer dependencies, Boolean isDirectAsyncContext)
   at osu.Framework.Graphics.Containers.CompositeDrawable.loadChild(Drawable child)
   at osu.Framework.Graphics.Containers.CompositeDrawable.load(ShaderManager shaders, Nullable`1 cancellation)
   at osu.Framework.Graphics.Containers.CompositeDrawable.<>c.<RegisterForDependencyActivation>b__206_0(Object t, IReadOnlyDependencyContainer d)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.Activate[T](T obj, IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Allocation.DependencyContainer.Inject[T](T instance)
   at osu.Framework.Graphics.Drawable.InjectDependencies(IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Graphics.Containers.CompositeDrawable.InjectDependencies(IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Graphics.Drawable.load(IFrameBasedClock clock, IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Graphics.Drawable.Load(IFrameBasedClock clock, IReadOnlyDependencyContainer dependencies, Boolean isDirectAsyncContext)
   at osu.Framework.Graphics.Containers.CompositeDrawable.loadChild(Drawable child)
   at osu.Framework.Graphics.Containers.CompositeDrawable.load(ShaderManager shaders, Nullable`1 cancellation)
   at osu.Framework.Graphics.Containers.CompositeDrawable.<>c.<RegisterForDependencyActivation>b__206_0(Object t, IReadOnlyDependencyContainer d)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.Activate[T](T obj, IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Allocation.DependencyContainer.Inject[T](T instance)
   at osu.Framework.Graphics.Drawable.InjectDependencies(IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Graphics.Containers.CompositeDrawable.InjectDependencies(IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Graphics.Drawable.load(IFrameBasedClock clock, IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Graphics.Drawable.Load(IFrameBasedClock clock, IReadOnlyDependencyContainer dependencies, Boolean isDirectAsyncContext)
   at osu.Framework.Graphics.Containers.CompositeDrawable.loadChild(Drawable child)
   at osu.Framework.Graphics.Containers.CompositeDrawable.load(ShaderManager shaders, Nullable`1 cancellation)
   at osu.Framework.Graphics.Containers.CompositeDrawable.<>c.<RegisterForDependencyActivation>b__206_0(Object t, IReadOnlyDependencyContainer d)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.Activate[T](T obj, IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Allocation.DependencyContainer.Inject[T](T instance)
   at osu.Framework.Graphics.Drawable.InjectDependencies(IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Graphics.Containers.CompositeDrawable.InjectDependencies(IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Graphics.Drawable.load(IFrameBasedClock clock, IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Graphics.Drawable.Load(IFrameBasedClock clock, IReadOnlyDependencyContainer dependencies, Boolean isDirectAsyncContext)
   at osu.Framework.Platform.GameHost.bootstrapSceneGraph(Game game)
   at osu.Framework.Platform.GameHost.Run(Game game)
   at osu.Desktop.Program.Main(String[] args) in /Users/daohe/RiderProjects/osu/osu.Desktop/Program.cs:line 139

Process finished with exit code 134.

Screenshots or videos

Looking specifically for the 970evo+ drive, one entry points to the "real" drive (/Volumes/970evo+) and the other one points to the time machine one (/Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/Dao’s MacBook Pro/2024-05-03-211757/970evo+)

https://github.com/ppy/osu/assets/1176059/d1622c82-389b-465b-b192-e2b501c12e9f

Version

2024.412.1

Logs

compressed-logs.zip

ILW8 commented 4 months ago

In case this is useful, DriveInfo.GetDrives() at osu.Framework/Graphics/UserInterface/DirectorySelector.cs#L164 returns these "drives":

[runtime] 2024-05-04 19:47:47 [verbose]: Drive /
[runtime] 2024-05-04 19:47:47 [verbose]: |- Drive type: Fixed
[runtime] 2024-05-04 19:47:47 [verbose]: +- Drive ready: True
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- Volume label: /
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- File system: apfs
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- Available space to current user:    81206861824 bytes
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- Total available space:              81206861824 bytes
[runtime] 2024-05-04 19:47:47 [verbose]: .  +- Total size of drive:               494384795648 bytes
[runtime] 2024-05-04 19:47:47 [verbose]: 
[runtime] 2024-05-04 19:47:47 [verbose]: Drive /dev
[runtime] 2024-05-04 19:47:47 [verbose]: |- Drive type: Ram
[runtime] 2024-05-04 19:47:47 [verbose]: +- Drive ready: True
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- Volume label: /dev
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- File system: devfs
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- Available space to current user:              0 bytes
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- Total available space:                        0 bytes
[runtime] 2024-05-04 19:47:47 [verbose]: .  +- Total size of drive:                     374272 bytes
[runtime] 2024-05-04 19:47:47 [verbose]: 
[runtime] 2024-05-04 19:47:47 [verbose]: Drive /System/Volumes/VM
[runtime] 2024-05-04 19:47:47 [verbose]: |- Drive type: Fixed
[runtime] 2024-05-04 19:47:47 [verbose]: +- Drive ready: True
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- Volume label: /System/Volumes/VM
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- File system: apfs
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- Available space to current user:    81206861824 bytes
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- Total available space:              81206861824 bytes
[runtime] 2024-05-04 19:47:47 [verbose]: .  +- Total size of drive:               494384795648 bytes
[runtime] 2024-05-04 19:47:47 [verbose]: 
[runtime] 2024-05-04 19:47:47 [verbose]: Drive /System/Volumes/Preboot
[runtime] 2024-05-04 19:47:47 [verbose]: |- Drive type: Fixed
[runtime] 2024-05-04 19:47:47 [verbose]: +- Drive ready: True
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- Volume label: /System/Volumes/Preboot
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- File system: apfs
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- Available space to current user:    81206861824 bytes
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- Total available space:              81206861824 bytes
[runtime] 2024-05-04 19:47:47 [verbose]: .  +- Total size of drive:               494384795648 bytes
[runtime] 2024-05-04 19:47:47 [verbose]: 
[runtime] 2024-05-04 19:47:47 [verbose]: Drive /System/Volumes/Update
[runtime] 2024-05-04 19:47:47 [verbose]: |- Drive type: Fixed
[runtime] 2024-05-04 19:47:47 [verbose]: +- Drive ready: True
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- Volume label: /System/Volumes/Update
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- File system: apfs
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- Available space to current user:    81206861824 bytes
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- Total available space:              81206861824 bytes
[runtime] 2024-05-04 19:47:47 [verbose]: .  +- Total size of drive:               494384795648 bytes
[runtime] 2024-05-04 19:47:47 [verbose]: 
[runtime] 2024-05-04 19:47:47 [verbose]: Drive /System/Volumes/xarts
[runtime] 2024-05-04 19:47:47 [verbose]: |- Drive type: Fixed
[runtime] 2024-05-04 19:47:47 [verbose]: +- Drive ready: True
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- Volume label: /System/Volumes/xarts
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- File system: apfs
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- Available space to current user:      504332288 bytes
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- Total available space:                504332288 bytes
[runtime] 2024-05-04 19:47:47 [verbose]: .  +- Total size of drive:                  524288000 bytes
[runtime] 2024-05-04 19:47:47 [verbose]: 
[runtime] 2024-05-04 19:47:47 [verbose]: Drive /System/Volumes/iSCPreboot
[runtime] 2024-05-04 19:47:47 [verbose]: |- Drive type: Fixed
[runtime] 2024-05-04 19:47:47 [verbose]: +- Drive ready: True
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- Volume label: /System/Volumes/iSCPreboot
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- File system: apfs
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- Available space to current user:      504332288 bytes
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- Total available space:                504332288 bytes
[runtime] 2024-05-04 19:47:47 [verbose]: .  +- Total size of drive:                  524288000 bytes
[runtime] 2024-05-04 19:47:47 [verbose]: 
[runtime] 2024-05-04 19:47:47 [verbose]: Drive /System/Volumes/Hardware
[runtime] 2024-05-04 19:47:47 [verbose]: |- Drive type: Fixed
[runtime] 2024-05-04 19:47:47 [verbose]: +- Drive ready: True
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- Volume label: /System/Volumes/Hardware
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- File system: apfs
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- Available space to current user:      504332288 bytes
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- Total available space:                504332288 bytes
[runtime] 2024-05-04 19:47:47 [verbose]: .  +- Total size of drive:                  524288000 bytes
[runtime] 2024-05-04 19:47:47 [verbose]: 
[runtime] 2024-05-04 19:47:47 [verbose]: Drive /System/Volumes/Data
[runtime] 2024-05-04 19:47:47 [verbose]: |- Drive type: Fixed
[runtime] 2024-05-04 19:47:47 [verbose]: +- Drive ready: True
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- Volume label: /System/Volumes/Data
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- File system: apfs
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- Available space to current user:    81206861824 bytes
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- Total available space:              81206861824 bytes
[runtime] 2024-05-04 19:47:47 [verbose]: .  +- Total size of drive:               494384795648 bytes
[runtime] 2024-05-04 19:47:47 [verbose]: 
[runtime] 2024-05-04 19:47:47 [verbose]: Drive /System/Volumes/Data/home
[runtime] 2024-05-04 19:47:47 [verbose]: |- Drive type: Network
[runtime] 2024-05-04 19:47:47 [verbose]: +- Drive ready: True
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- Volume label: /System/Volumes/Data/home
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- File system: autofs
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- Available space to current user:              0 bytes
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- Total available space:                        0 bytes
[runtime] 2024-05-04 19:47:47 [verbose]: .  +- Total size of drive:                          0 bytes
[runtime] 2024-05-04 19:47:47 [verbose]: 
[runtime] 2024-05-04 19:47:47 [verbose]: Drive /Volumes/970evo+
[runtime] 2024-05-04 19:47:47 [verbose]: |- Drive type: Fixed
[runtime] 2024-05-04 19:47:47 [verbose]: +- Drive ready: True
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- Volume label: /Volumes/970evo+
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- File system: apfs
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- Available space to current user:   311827406848 bytes
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- Total available space:             311827406848 bytes
[runtime] 2024-05-04 19:47:47 [verbose]: .  +- Total size of drive:               499898105856 bytes
[runtime] 2024-05-04 19:47:47 [verbose]: 
[runtime] 2024-05-04 19:47:47 [verbose]: Drive /Volumes/tank
[runtime] 2024-05-04 19:47:47 [verbose]: |- Drive type: Network
[runtime] 2024-05-04 19:47:47 [verbose]: +- Drive ready: True
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- Volume label: /Volumes/tank
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- File system: smbfs
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- Available space to current user: 10250473046016 bytes
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- Total available space:           10250473046016 bytes
[runtime] 2024-05-04 19:47:47 [verbose]: .  +- Total size of drive:             47023452717056 bytes
[runtime] 2024-05-04 19:47:47 [verbose]: 
[runtime] 2024-05-04 19:47:47 [verbose]: Drive /Volumes/macfuse
[runtime] 2024-05-04 19:47:47 [verbose]: |- Drive type: Fixed
[runtime] 2024-05-04 19:47:47 [verbose]: +- Drive ready: True
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- Volume label: /Volumes/macfuse
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- File system: apfs
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- Available space to current user:    63307112448 bytes
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- Total available space:              63307112448 bytes
[runtime] 2024-05-04 19:47:47 [verbose]: .  +- Total size of drive:               127790264320 bytes
[runtime] 2024-05-04 19:47:47 [verbose]: 
[runtime] 2024-05-04 19:47:47 [verbose]: Drive /Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/Dao’s MacBook Pro/2024-05-03-211757/970evo+
[runtime] 2024-05-04 19:47:47 [verbose]: |- Drive type: Fixed
[runtime] 2024-05-04 19:47:47 [verbose]: +- Drive ready: True
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- Volume label: /Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/Dao’s MacBook Pro/2024-05-03-211757/970evo+
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- File system: apfs
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- Available space to current user:   311827406848 bytes
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- Total available space:             311827406848 bytes
[runtime] 2024-05-04 19:47:47 [verbose]: .  +- Total size of drive:               499898105856 bytes
[runtime] 2024-05-04 19:47:47 [verbose]: 
[runtime] 2024-05-04 19:47:47 [verbose]: Drive /Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/Dao’s MacBook Pro/2024-05-03-211757/Data
[runtime] 2024-05-04 19:47:47 [verbose]: |- Drive type: Fixed
[runtime] 2024-05-04 19:47:47 [verbose]: +- Drive ready: True
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- Volume label: /Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/Dao’s MacBook Pro/2024-05-03-211757/Data
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- File system: apfs
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- Available space to current user:    81206861824 bytes
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- Total available space:              81206861824 bytes
[runtime] 2024-05-04 19:47:47 [verbose]: .  +- Total size of drive:               494384795648 bytes
[runtime] 2024-05-04 19:47:47 [verbose]: 
[runtime] 2024-05-04 19:47:47 [verbose]: Drive /Volumes/syncthing
[runtime] 2024-05-04 19:47:47 [verbose]: |- Drive type: Network
[runtime] 2024-05-04 19:47:47 [verbose]: +- Drive ready: True
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- Volume label: /Volumes/syncthing
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- File system: smbfs
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- Available space to current user: 10250473144320 bytes
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- Total available space:           10250473144320 bytes
[runtime] 2024-05-04 19:47:47 [verbose]: .  +- Total size of drive:             10394070220800 bytes
[runtime] 2024-05-04 19:47:47 [verbose]: 
[runtime] 2024-05-04 19:47:47 [verbose]: Drive /Volumes/.timemachine/truenas._smb._tcp.local./77FD9FF1-523E-4B57-906C-ACBA38CED94F/time-machine
[runtime] 2024-05-04 19:47:47 [verbose]: |- Drive type: Network
[runtime] 2024-05-04 19:47:47 [verbose]: +- Drive ready: False
[runtime] 2024-05-04 19:47:47 [verbose]: 
[runtime] 2024-05-04 19:47:47 [verbose]: Drive /private/var/folders/f7/_lr94xjn7xv64_n8z4269q2c0000gn/T/AppTranslocation/026C975E-F897-49CB-92BD-FD2722A64156
[runtime] 2024-05-04 19:47:47 [verbose]: |- Drive type: Unknown
[runtime] 2024-05-04 19:47:47 [verbose]: +- Drive ready: True
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- Volume label: /private/var/folders/f7/_lr94xjn7xv64_n8z4269q2c0000gn/T/AppTranslocation/026C975E-F897-49CB-92BD-FD2722A64156
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- File system: nullfs
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- Available space to current user:    69133750272 bytes
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- Total available space:              69133750272 bytes
[runtime] 2024-05-04 19:47:47 [verbose]: .  +- Total size of drive:               494384795648 bytes
[runtime] 2024-05-04 19:47:47 [verbose]: 
[runtime] 2024-05-04 19:47:47 [verbose]: Drive /Volumes/Backups of Dao’s MacBook Pro 2
[runtime] 2024-05-04 19:47:47 [verbose]: |- Drive type: Fixed
[runtime] 2024-05-04 19:47:47 [verbose]: +- Drive ready: True
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- Volume label: /Volumes/Backups of Dao’s MacBook Pro 2
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- File system: apfs
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- Available space to current user: 10250473046016 bytes
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- Total available space:           10250473046016 bytes
[runtime] 2024-05-04 19:47:47 [verbose]: .  +- Total size of drive:             16000000000000 bytes
[runtime] 2024-05-04 19:47:47 [verbose]: 
[runtime] 2024-05-04 19:47:47 [verbose]: Drive /Volumes/.timemachine/9A88E1E5-61CE-4920-AD73-3771F4FCF596/2024-01-19-132621.backup
[runtime] 2024-05-04 19:47:47 [verbose]: |- Drive type: Fixed
[runtime] 2024-05-04 19:47:47 [verbose]: +- Drive ready: True
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- Volume label: /Volumes/.timemachine/9A88E1E5-61CE-4920-AD73-3771F4FCF596/2024-01-19-132621.backup
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- File system: apfs
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- Available space to current user: 10250473046016 bytes
[runtime] 2024-05-04 19:47:47 [verbose]: .  |- Total available space:           10250473046016 bytes
[runtime] 2024-05-04 19:47:47 [verbose]: .  +- Total size of drive:             16000000000000 bytes