[Moto G 2015 Q&A, Help & Troubleshooting] Edu_Renesto:
I've had this problem since I bought my 8GB osprey. Long story short, if you format the card as Adopted, it will work flawlessly for some weeks and then a notification saying "SDCard missing" will appear, and all the apps installed on it will vanish. It will only work again if you format it again, losing everything.

I've figured out that formatting it as Portable will work great, but creating a second partition and using on Link2SD or similiar won't. I've tried using EXT2, EXT3, EXT4 and F2FS on the second partition, and they won't even mount, neither through the app nor manually using the mount command.

This is really pissing me off, since I can install only 5-6 apps on the internal memory.

Useful dmesg output:

osprey:/ $ dmesg | egrep 'mmc1|mmcblk1'
[ 0.949370,0] mmc1: no vqmmc regulator found
[ 0.949383,0] mmc1: no vmmc regulator found
[ 0.981961,1] mmc1: SDHCI controller on 7864900.sdhci [7864900.sdhci] using 32-bit ADMA
[ 1.267895,1] mmc1: new ultra high speed SDR50 SDHC card at address aaaa
[ 1.268370,1] mmcblk1: mmc1:aaaa SS16G 14.8 GiB
[ 1.280566,1] mmcblk1:
[ 31.752721,1] mmcblk1: mmc_blk_err_check: general error sending status command, card status 0x80900
[ 31.752739,1] mmcblk1: retrying write for general error
[ 31.769379,0] mmcblk1: mmc_blk_err_check: general error sending status command, card status 0x80900
[ 31.769394,0] mmcblk1: retrying write for general error
[ 31.782204,0] mmcblk1: mmc_blk_err_check: general error sending status command, card status 0x80900
[ 31.782220,0] mmcblk1: retrying write for general error
[ 31.795130,0] mmcblk1: mmc_blk_err_check: general error sending status command, card status 0x80900
[ 31.795154,0] mmcblk1: retrying write for general error
[ 31.807492,0] mmcblk1: mmc_blk_err_check: general error sending status command, card status 0x80900
[ 31.807512,0] mmcblk1: retrying write for general error
[ 31.820289,0] mmcblk1: mmc_blk_err_check: general error sending status command, card status 0x80900
[ 31.820307,0] mmcblk1: retrying write for general error
[ 32.245241,0] mmcblk1: mmc_blk_err_check: general error sending status command, card status 0x80900
[ 32.245260,0] mmcblk1: retrying write for general error
[ 32.245280,0] mmc1: recovering card (3); health: 1/0, 0/141
[ 32.867793,0] mmcblk1: mmc_blk_err_check: general error sending status command, card status 0x80900
[ 32.867814,0] mmcblk1: retrying write for general error
[ 32.867858,0] mmc1: recovering card (3); health: 2/0, 0/170
[ 33.690134,0] mmcblk1: mmc_blk_err_check: general error sending status command, card status 0x80900
[ 33.690150,0] mmcblk1: retrying write for general error
[ 33.690167,0] mmc1: recovering card (3); health: 3/0, 0/199
[ 34.714127,0] mmcblk1: mmc_blk_err_check: general error sending status command, card status 0x80900
[ 34.714146,0] mmcblk1: retrying write for general error
[ 34.714191,0] mmc1: recovering card (3); health: 4/0, 0/228
[ 35.941315,0] mmcblk1: mmc_blk_err_check: general error sending status command, card status 0x80900
[ 35.941334,0] mmcblk1: retrying write for general error
[ 35.941356,0] mmc1: recovering card (3); health: 5/0, 0/257
[ 37.364783,0] mmcblk1: mmc_blk_err_check: general error sending status command, card status 0x80900
[ 37.364799,0] mmcblk1: retrying write for general error
[ 37.364820,0] mmc1: recovering card (3); health: 6/0, 0/286
[ 38.989613,1] mmcblk1: mmc_blk_err_check: general error sending status command, card status 0x80900
[ 38.989632,1] mmcblk1: retrying write for general error
[ 38.989652,1] mmc1: recovering card (3); health: 7/0, 0/315
[ 40.814170,0] mmcblk1: mmc_blk_err_check: general error sending status command, card status 0x80900
[ 40.814221,0] mmcblk1: retrying write for general error
[ 40.814245,0] mmc1: recovering card (3); health: 8/0, 0/344
[ 42.837554,0] mmcblk1: mmc_blk_err_check: general error sending status command, card status 0x80900
[ 42.837571,0] mmcblk1: retrying write for general error
[ 42.837591,0] mmc1: giving up on request after 10592 ms (9/0, 0/373, 1/3)
[ 42.837600,0] end_request: I/O error, dev mmcblk1, sector 31116248
[ 42.837610,0] Buffer I/O error on device mmcblk1, logical block 3889531
[ 42.837616,0] lost page write due to I/O error on mmcblk1
[ 42.837638,0] end_request: I/O error, dev mmcblk1, sector 31116256
[ 42.837647,0] Buffer I/O error on device mmcblk1, logical block 3889532
[ 42.837653,0] lost page write due to I/O error on mmcblk1
[ 42.837663,0] end_request: I/O error, dev mmcblk1, sector 31116264
[ 42.837670,0] Buffer I/O error on device mmcblk1, logical block 3889533
[ 42.837676,0] lost page write due to I/O error on mmcblk1
[ 42.837685,0] end_request: I/O error, dev mmcblk1, sector 31116272
[ 42.837693,0] Buffer I/O error on device mmcblk1, logical block 3889534
[ 42.837699,0] lost page write due to I/O error on mmcblk1
[ 42.837707,0] end_request: I/O error, dev mmcblk1, sector 31116280
[ 42.837715,0] Buffer I/O error on device mmcblk1, logical block 3889535
[ 42.837722,0] lost page write due to I/O error on mmcblk1
[ 43.858539,2] mmcblk1:
[ 43.910881,0] mmcblk1: p1
[ 44.596791,0] mmc1: recovering card (0); health: 1/0, 0/419
[ 45.308871,0] mmc1: recovering card (0); health: 2/0, 0/450
[ 46.222385,1] mmc1: recovering card (0); health: 3/0, 0/481
[ 47.333208,0] mmc1: recovering card (0); health: 4/0, 0/512
[ 48.646364,1] mmc1: recovering card (0); health: 5/0, 0/543
[ 50.159876,1] mmc1: recovering card (0); health: 6/0, 0/574
[ 51.873191,1] mmc1: recovering card (0); health: 7/0, 0/605
[ 53.786052,0] mmc1: recovering card (0); health: 8/0, 0/636
[ 55.899446,0] mmc1: giving up on request after 11302 ms (9/0, 0/667, 2/3)
[ 55.899457,0] end_request: I/O error, dev mmcblk1, sector 2048
[ 57.685012,1] SELinux: initialized (dev mmcblk1p1, type vfat), uses genfs_contexts
[ 135.186116,1] mmcblk1: p1
[ 136.292625,0] mmcblk1: p1 p2
[ 136.914438,0] mmc1: recovering card (0); health: 1/0, 0/2307
[ 137.574522,0] mmc1: recovering card (0); health: 2/0, 0/2338
[ 138.434276,0] mmc1: recovering card (0); health: 3/0, 0/2369
[ 139.489132,0] mmc1: recovering card (0); health: 4/0, 0/2400
[ 140.739048,0] mmc1: recovering card (0); health: 5/0, 0/2431
[ 142.189193,0] mmc1: recovering card (0); health: 6/0, 0/2462
[ 143.838737,0] mmc1: recovering card (0); health: 7/0, 0/2493
[ 145.689020,0] mmc1: recovering card (0); health: 8/0, 0/2524
[ 147.738979,0] mmc1: giving up on request after 10824 ms (9/0, 0/2555, 3/3)
[ 147.738989,0] mmc1: dropping card after 3 failures
[ 147.739012,0] end_request: I/O error, dev mmcblk1, sector 34816
[ 147.739149,0] mmc1: failed to re-detect removed SD card
[ 147.895107,3] mmc1: card aaaa removed
[ 147.921353,3] mmc1: ignoring bad card

It looks like this is a major Moto G 2015 hardware flaw, since I've seen a lot of people with this problem and it has happened on every ROM i've tried (and I change ROMs frequently).