Skip to content

Installing Everest to a drive with a filesystem that does not support symlinks fails on Linux #1151

Open

Description

@SnipUndercover

My mods and Everest install are up to date

Yes

I have recreated the bug with only Everest OR a minimum number of mods enabled

Yes

Describe the bug

As described in the title, when the user attempts to install Everest to an external drive with a filesystem that does not support symlinks (the example I ran into was exFAT) on Linux, MiniInstaller crashes when trying to symlink the Content/ folder.

Steps to reproduce

  1. Install Celeste to a drive with a filesystem like exFAT, FAT32, etc
  2. Install Everest to it
  3. explode

Expected behavior

MiniInstaller should fall back to making a copy of the Content folder, just like Windows does.

Operating System

Arch Linux

Everest Version

6418

Mods required to reproduce

No response

Additional context

Relevant log-sharp.txt snippet:

Applying patch vanilla libraries
System.UnauthorizedAccessException: Access to the path '/run/media/.../Celeste/orig/Content' is denied.
--> System.IO.IOException: Operation not permitted
--- End of inner exception stack trace ---
   at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirError)
   at Interop.CheckIo(Int64 result, String path, Boolean isDirError)
   at System.IO.Directory.CreateSymbolicLink(String path, String pathToTarget)
   at MiniInstaller.BackUp.CreateBackupSymlinks() in MiniInstaller/BackUp.cs:line 86
   at MiniInstaller.BackUp.Backup() in MiniInstaller/BackUp.cs:line 73
   at MiniInstaller.Program.StandardMode(String[] args) in MiniInstaller/Program.cs:line 67

The exception is caught but is rethrown if the OS is not Windows:

//Create symlinks
try {
CreateBackupSymlinks();
} catch (Exception e) {
if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) {
throw;
}
if (!WindowsElevationRequest.HandleWindowsElevationProcedure(e))
throw;
}

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

bugSomething isn't working

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions