When Link2SD refuses to start or issues an error when trying to get superuser rights on Xiaomi Redmi smartphones, it is a common problem. Owners of devices with a MIUI shell often find that standard rooting methods do not work correctly due to the aggressive Android security system and firmware features, which leads to the inability to transfer system applications to a memory card or free internal storage.
The main reason is that the current versions of Android (starting with 10 and above) and the HyperOS shell have fundamentally changed the way the file system works. Old partition mounting methods that have been used for years are now blocked by the kernel. If you just updated the firmware or installed Magisk, but the linking utility still doesn't see the rights, then you need to have a deep configuration configuration configuration configuration configuration configuration, not just re-installation.
In this article, we will discuss specific steps to resolve conflicts between the rights manager and Redmi system restrictions, explain why a standard access request can be ignored and how to properly configure Zygisk or SuList for stable operation. Ignoring these nuances can lead to an application that will not work stable or will not start at all.
Link2SD's reasons for refusal to access MIUI and HyperOS
The first thing to understand is that Xiaomi implements multiple layers of protection that can block third-party utilities. Often the problem is not the lack of rights per se, but that the Link2SD process is not included in the exclusion list or blocked by the system's antivirus. The MIUI shell is known for its strict energy saving policy, which "kills" the background processes necessary to mount partitions.
Another critical factor is the method of obtaining rights. If you use an outdated SuperSU, it will not work on modern versions of Android. The system requires the use of Magisk or KSU (KernelSU), which work at a lower level. The error "failed to get root" often means that the binary su file is not found in the path that the application expects to see, or access to it is limited by the kernel security settings.
β οΈ Note: Use of older versions of Android rights managers 12-14 This can cause a bootloop, and make sure your rooting method is compatible with the system version.
Also, it is worth considering that on Redmi devices with Snapdragon and MediaTek processors, behavior may differ, in some cases, you need to force the /data partition to read-write mode, which is prohibited by default, without which the application will not physically be able to create the necessary links in the second partition of the memory card.
- π± Version conflict: the app is not compatible with the current version of Android.
- π SELinux Block: Security mode bans access to file system.
- π Battery Optimization: System Closes Process Until Authorization Is Completed.
- π Incorrect markup: the second partition of the memory card is not defined by the system.
Checking the status of the superuser and Magisk rights
Before you try to configure the app itself, you need to make sure that the rights are really active and work correctly. Open the Magisk app and check the status at the top of the screen. If it says "Not installed" or the version is hidden, then the rooting failed and no utility will be able to access.
An important step is to check the list of applications that are allowed to access. Go to the Magisk settings (shield icon) and find the "Superuser" or "Superuser" section. If Link2SD is not on the list or the switch is off, the application will not be able to perform its functions. Xiaomi sometimes requires manually request access on the first run, but if the pop-up does not appear, then the notification mechanism is broken.
There's also a nuance with Zygisk settings. Newer versions of Magisk require you to activate this setting in the settings, reboot the device and then check access. Without Zygisk enabled, some system calls can be blocked, especially on HyperOS devices. This is a common reason why an application sees root but can't perform a mount operation.
- π‘οΈ Check if Zygisk is enabled in Magisk settings.
- π Make sure that after switching on Zygisk, a full reboot has been performed.
- π Check Magisk log files for errors when requesting access.
- π² Make sure the version Link2SD Updated to the last available.
Access and exclusions in MIUI
The MIUI shell has its own permission system that runs on top of Android's standard permissions. Even if Magisk has given access, the system can block the application from auto-starting. Go to Settings β Apps β All apps, find Link2SD and select Permissions. You must manually enable all requested rights, including access to storage and phone.
A critical step is to turn off the power savings for this application. In the application settings menu, select Activity Control (or Charge Saving) and set the value "No Limits." If you do not, Redmi will freeze the linking process in the second partition, which will lead to error or data corruption, this is especially true for background services that must be running constantly.
βοΈ Permit settings MIUI
There is also a hidden setting called MIUI Optimization in the developer menu that often conflicts with deep system changes. To turn it off, you need to press the build number 7 times in Settings β About Phone, then go to Advanced Settings β For Developers. At the bottom of the list, find the switch "Enable MIUI Optimization" and turn it off. After that, the phone will suggest a reboot.
β οΈ Attention: Disabling optimization MIUI It can change the permission interface and make some system fonts unreadable.
Requirements for memory card and partition markup
A common cause of error is not the rights system itself, but the incorrect preparation of the media. To work Link2SD memory card must be formatted with the creation of a second hidden partition. The file system of this partition must be ext4, ext3 or ext2. File systems FAT32 or exFAT do not support the necessary linking functions on modern Linux kernels.
You can create the correct markup through the built-in function in the application (the "Create Partition" menu), or using the PC and the MiniTool Partition Wizard program. It is important that the first partition remains primary and visible to the system, and the second partition is hidden. If you use a large card (more than 64 GB), make sure that it works in compatibility mode, as some memory controllers in Redmi incorrectly handle hidden partitions on large volumes.
| Parameter | Recommended value | Permissible value | Impact on work |
|---|---|---|---|
| File system | ext4 | ext3, ext2 | Without ext4, instability is possible. |
| Section size | Up to 32GB | Up to 64GB | Large sections may not be installed |
| Type of card | Class 10 / U3 | Class 10 | Low speed will cause lags |
| Brand-name | SanDisk, Samsung | Kingston, Lexar | Cheap cards often lose sections |
π‘
Use the High Endurance or Industrial series memory cards, as the constant log and cache recording of applications quickly wears out regular cards.
Solving problems with the installation of the second section
If you have a license, but the app says it can't mount the second partition, the problem may be in the autoload script. Link2SD creates an install-recovery.sh script that should be launched when the system starts. On Xiaomi, this script can be blocked by Verified Boot (Testing the Integrity of the bootloader), which requires the installation of the Mount-Service module via Magisk.
Try using Safe Mode inside the app itself when you first set up. Sometimes automatically detecting lib fails libraries on ARM64 processors. In the application settings (if accessed via adb or configuration files), you can manually specify the path to libraries, but it is easier to use Automatic Configuration by pre-deleting old configuration files from the /data/link2sd/ folder.
β οΈ Note: Do not attempt to mount partition manually through the terminal unless you are sure of the syntax of the mount command.
Also check if the Memory Card Encryption feature is enabled in the MIUI storage settings. If the card is encrypted as an internal storage, third-party utilities will not be able to directly access its file structure to create links.
- ποΈ Delete the configuration file link2sd.cfg And try to reconfigure.
- π Check if the section is full. /data on the phone.
- π Remove and insert the memory card again after turning on the phone.
- π Check for script availability 99link2sd file /system/etc/init.d/.
Using ADB for forced access
When the GUI is powerless, USB debugging comes to the rescue. Connect Redmi to your computer, turn on debugging mode, and type in a command to check root status: adb shell su -c "id." If you get uid=0, then the rights are at the kernel level. Then you can try to force the mounting service to run.
For advanced users, you can manually prescribe mounting paths. Create a script file and put it in the appropriate directory through ADB. The command will look something like this:
adb shell su -c "mount -t ext4 /dev/block/mmcblk1p2 /data/sdext2"If the command is successful, then the problem was the application's autoload script, in which case you can use third-party task managers or Magisk modules to run this command when you boot the system, replacing the failed mechanism of the application itself, a workaround that often saves on complex firmware.