Android - How can I move apps to SD on non-adopted Marshmallow storage?

Marshmallow internal storage can be better used with a mixed-format SD card as I also explain in my blog here:

First, you need adb working.

  1. Have SD card inserted and formatted as portable.
  2. Eject your SD card from the Storage & USB menu
  3. Use "adb shell" to list your adoptable storage:

like this

$ adb shell sm list-disks adoptable


disk:179_64 is my SD card that can be made adoptable, I want 75% as external SD:

$ adb shell sm partition disk:179_64 mixed 75

Note: Your card may be listed with a comma instead of an underscore, e.g. disk:179,64 in which case, that is what you type:

$ adb shell sm partition disk:179,64 mixed 75
  1. This will erase the entire SD card, giving 75% as portable storage and the rest as adopted internal storage.

  2. Reboot your phone.

  3. From Storage & USB menu, select the SD card (internal) and choose Migrate Data (so that apps, where possible, are installed there).

  4. From the Storage & USB rename the adopted storage to have some name like Adopted otherwise if it has the same name as the external storage partition, the USB MTP view may only show the internal

Now you have adopted storage that can accept apps which allow "move to SD", and also an SD card where you can store Plex movies, google play music, photos, etc.

Thanks to @fernio who tipped me to post here.

You are correct. Android Marshmallow has done away with apps being on the SD card when it's setup as portable storage. The only way to use it in that way is with root and apps like LINK2SD.