LINUX.ORG.RU

Перешивка флешек

 


0

3

Купил терабайтную флешку micro-SDXC на Алиэкспрессе. В назначенное время не пришла. Открыл спор, вернули деньги. Через месяц пришла флешка. Попытался связаться с администрацией — не пробился через робота. С магазином — не отвечают. Посмотрел страницу магазина — весь товар убрали, куча негативных отзывов, что мошенники — перешивают флешки на бОльшую ёмкость. Попробовал флешку — небольшие объёмы пишутся нормально, при больших (~40 Гб) часть файлов забивается мусором. Похоже, такая же перешитая.

Поэтому возник вопрос: как её перешить обратно на реальный объём? Даже если там 16 гигабайт, лишними они не будут.

Если предложите искать документацию на контроллер, как узнать его средствами Линукса?

Не вполне удовлетворительный ответ: https://github.com/AltraMayor/f3 создаст раздел по размеру работоспособной области. Но вместо объёма «честной» области он определяет объём до первого нечитаемого сектора.

★★★★★

Последнее исправление: question4 (всего исправлений: 2)

Втыкнуть флешку. Посмотреть lsusb на предмет ID и названия флешки.
Погуглить что там внутри, ну или сразу на https://www.usbdev.ru/
Шить по любому придется из оффтопа.
Есть под оффтоп chipgenius. Может много чего рассказать.
Скорее всего будет или alcor, или какой-нибудь chipsbank.

hbars ★★★★★
()
Ответ на: комментарий от hbars

Втыкнуть флешку. Посмотреть lsusb на предмет ID и названия флешки.

lsusb без параметров показывает ID кардридера.

Скорее всего будет или alcor

Когда я вбил в гугл номер с корпуса флешки, он предложил фотографии флешек Alnux.

question4 ★★★★★
() автор топика
Ответ на: комментарий от hbars

То есть в /dev/sdX ничего не появляется?

Появляется. Но с этими устройствами lsusb не работает.

sdX появляются при подключении ридера вне зависимости от присутствия флешек в нём. Если флешка читается и размечена как жёсткий диск, появляется sdX1. Но так как флешка размечена как дискета, sdX1 не появится, даже если она рабочая.

Вот что показывает dmesg для /dev/sde:

[599568.198288] sd 6:0:0:3: [sdf] Attached SCSI removable disk
[599568.200040] sd 6:0:0:2: [sde] 2097154048 512-byte logical blocks: (1.07 TB/1000 GiB)
[599568.201792] sd 6:0:0:2: [sde] Write Protect is off
[599568.201798] sd 6:0:0:2: [sde] Mode Sense: 03 00 00 00
[599568.203416] sd 6:0:0:2: [sde] No Caching mode page found
[599568.203422] sd 6:0:0:2: [sde] Assuming drive cache: write through
[599568.209911] sd 6:0:0:1: [sdd] Attached SCSI removable disk
[599568.216726]  sde: sde1
[599568.220032] sd 6:0:0:2: [sde] Attached SCSI removable disk
[600066.016132] sd 6:0:0:2: [sde] Unaligned partial completion (resid=120830, sector_sz=512)
[600066.016145] sd 6:0:0:2: [sde] tag#0 CDB: Write(10) 2a 00 7c ff 10 00 00 00 f0 00
[600066.016157] sd 6:0:0:2: [sde] tag#0 FAILED Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK cmd_age=25s
[600066.016163] sd 6:0:0:2: [sde] tag#0 Sense Key : Hardware Error [current] 
[600066.016168] sd 6:0:0:2: [sde] tag#0 Add. Sense: No additional sense information
[600066.016172] sd 6:0:0:2: [sde] tag#0 CDB: Write(10) 2a 00 7c ff 10 00 00 00 f0 00
[600066.016175] blk_update_request: I/O error, dev sde, sector 2097090560 op 0x1:(WRITE) flags 0xc800 phys_seg 31 prio class 0
[600117.612731] usb 2-1: reset high-speed USB device number 10 using ehci-pci
[600123.233778] usb 2-1: device descriptor read/64, error -110

Последние строки относятся к работе f3probe.

question4 ★★★★★
() автор топика

Интересная классификация устройств:

enum fake_type {
	/* Device is good. */
	FKTY_GOOD,

	/* Device is at least partially damaged. */
	FKTY_BAD,

	/* Device discards data after a given limit. */
	FKTY_LIMBO,

	/* Device overwrites data after a given limit. */
	FKTY_WRAPAROUND,

	/* Device is a sequence of wraparound and limbo regions. */
	FKTY_CHAIN,

	FKTY_MAX
};

https://github.com/AltraMayor/f3/blob/3b015a5a493e326563bcd5a641950633632091df/libdevs.h#L10

question4 ★★★★★
() автор топика

Не вполне удовлетворительный ответ: https://github.com/AltraMayor/f3 создаст раздел по размеру работоспособной области. Но вместо объёма «честной» области он определяет объём до первого нечитаемого сектора.

что мешает посчитать самому и немного округлить? или сделать раздел поменьше для надежности.

з.ы. была у меня когда-то флешка 32гб, которая на самом деле 8гб. работала без ошибок с разделом 8гб, но недолго. имхо, лучше в помойку выкинуть. или хранить на ней совсем откровенный шлак.

Rost ★★★★★
()
Ответ на: комментарий от Rost

что мешает посчитать самому и немного округлить? или сделать раздел поменьше для надежности.

Если сбой во 2-м гигабайте, то объём флешки покажет немного больше гигабайта. Даже если за ним ещё десяток гигабайт рабочих. Ковырять это руками или написать скрипт можно, но хотелось бы чтобы программа делала это сама.

имхо, лучше в помойку выкинуть. или хранить на ней совсем откровенный шлак.

Ну да. Это ненадолго.

question4 ★★★★★
() автор топика