SSD 16 Tb pour 20.- CHF

boxed

Cela semble joli.

unboxed

Connecteur USB-C

usb-c

Premiers tests

May 17 16:48:51 raspberrypi kernel: [    3.300975] scsi 0:0:0:0: Direct-Access     SSD      SSD              5.00 PQ: 0 ANSI: 2
May 17 16:48:51 raspberrypi kernel: [    3.304715] sd 0:0:0:0: [sda] Very big device. Trying to use READ CAPACITY(16).
May 17 16:48:51 raspberrypi kernel: [    3.307273] sd 0:0:0:0: [sda] 4096000000 4096-byte logical blocks: (16.8 TB/15.3 TiB)
May 17 16:48:51 raspberrypi kernel: [    3.309676] sd 0:0:0:0: [sda] Write Protect is off
May 17 16:48:51 raspberrypi kernel: [    3.311812] sd 0:0:0:0: [sda] Mode Sense: 0b 00 00 08
May 17 16:48:51 raspberrypi kernel: [    3.312121] sd 0:0:0:0: [sda] No Caching mode page found
May 17 16:48:51 raspberrypi kernel: [    3.314288] sd 0:0:0:0: [sda] Assuming drive cache: write through
May 17 16:48:51 raspberrypi kernel: [    3.318517] sd 0:0:0:0: [sda] Very big device. Trying to use READ CAPACITY(16).
May 17 16:48:51 raspberrypi kernel: [    3.323570] sd 0:0:0:0: [sda] Attached SCSI removable disk

Première observation: le disque ne monte pas automatiquement, sous Linux. Mais on peut le monter à la main:

root@raspberrypi:~# mount -t exfat /dev/sdb /mnt/
root@raspberrypi:~# cd /mnt/
root@raspberrypi:/mnt# df -h .
Sys. de fichiers Taille Utilisé Dispo Uti% Monté sur
/dev/sdb            16T     24M   16T   1% /mnt

Wow!

root@raspberrypi:/mnt# ls -ltr
total 4096
drwxr-xr-x 2 root root 4194304 17 oct  2022 'System Volume Information'

root@raspberrypi:/mnt# mkdir testfiles
root@raspberrypi:/mnt# cd $_
root@raspberrypi:/mnt/testfiles# i=1
root@raspberrypi:/mnt/testfiles# printf -v i %03d $i;time yes $i | dd iflag=fullblock bs=$((1024**2)) count=1000 of=file-$i.txt
1000+0 enregistrements lus
1000+0 enregistrements écrits
1048576000 octets (1.0 GB, 1000 MiB) copiés, 33.0469 s, 31.7 MB/s

real    0m33.060s
user    0m0.288s
sys     0m6.655s

Voilà, j'ai créé un fichier de 1Gb, contenant 001\n répété.

root@raspberrypi:/mnt/testfiles# head file-001.txt 
001
001
001
001
001
001
001
001
001
001
root@raspberrypi:/mnt/testfiles# tail file-001.txt 
001
001
001
001
001
001
001
001
001
001
root@raspberrypi:/mnt/testfiles# ls -l 
total 1024000
-rwxr-xr-x 1 root root 1048576000 20 mai 09:48 file-001.txt

Tout semble correct.

Faisons à présent 99 autres fichiers de 1Gb, contenant 002 à 100.

root@raspberrypi:/mnt/testfiles# for i in {2..100};do
    start=${EPOCHREALTIME/.}
printf -v i %03d $i
yes $i | dd iflag=fullblock bs=$((1024**2)) count=1000 |
    tee file-$i.txt |
    md5sum >>md5sums.txt
elap=00000$(( ${EPOCHREALTIME/.} - start ))
printf ' - %s  %9.4fsec\n' "file-$i.txt" ${elap::-6}.${elap: -6}
done
1000+0 enregistrements lus
1000+0 enregistrements écrits
1048576000 octets (1.0 GB, 1000 MiB) copiés, 35.1773 s, 29.8 MB/s
 - file-002.txt    35.1904sec
1000+0 enregistrements lus
1000+0 enregistrements écrits
1048576000 octets (1.0 GB, 1000 MiB) copiés, 77.542 s, 13.5 MB/s
 - file-003.txt    77.5528sec
...

 - file-099.txt    33.4823sec
1000+0 enregistrements lus
1000+0 enregistrements écrits
1048576000 octets (1.0 GB, 1000 MiB) copiés, 33.4362 s, 31.4 MB/s
 - file-100.txt    33.4524sec

Tout sembe ok, testons!

checkFile() {
    local a e r;
for a; do
    e=${EPOCHREALTIME/.}
    mapfile -t r < <(
        stat -c %s $a
    ( tee < $a >(head -n1 >&6 ; tail -n1 >&6 ) |
    wc ) 6>&1
    )
    e=00000$((${EPOCHREALTIME/.}-e))
        printf ' - %s %11d %4s %4s %8d %8d %11d  %9.4fsec\n' \
        "$a" ${r[@]} ${e::-6}.${e: -6}
    done
}

Pour afficher la taille, la première ligne, la dernière ligne, le nombre de lignes, le nombre de mots, la nombre de characters et la durée d'execution du test.

Ceci affiche:

 - file-001.txt  1048576000  001  001 262144000 262144000  1048576000    42.9288sec
 - file-002.txt  1048576000  002  002 262144000 262144000  1048576000    50.0091sec
 - file-003.txt  1048576000  003  003 262144000 262144000  1048576000    50.1531sec
...
 - file-058.txt  1048576000  058  058 262144000 262144000  1048576000    50.3845sec
 - file-059.txt  1048576000  059  059 262144000 262144000  1048576000    50.0544sec
 - file-060.txt  1048576000  060 00000560.268962        0        0           0     0.0000sec
 - file-061.txt  1048576000 000005553.352329             0        0           0     0.0000sec

Puis tout se plante...

Bon, il est temps de voir à quoi cela ressemble:

lack-opened lack-opened-2

Voilà, voilà...

black-sd-out black-sd-card

C'est bien vide, tout ça!

blue-opened

Une carte SD de 64Gb:

MMSZ64GG9T25  TO
  XL 2982 2304
 MADE  IN CHINA

blue-sd-card blue-sd-card-ref

Piloté par un chip:

Chipsbank
CBM2199S
 EK5457

blue-chip-ref

Si je branche la carte SD sur un autre adaptateur SD, je trouve la partition EXFAT au 40ème block.

root@raspberrypi:~# dd if=/dev/sdb count=40 >/tmp/sdd_16t-401stBlk.raw
root@raspberrypi:~# dd if=/dev/zero of=/dev/sdb count=40 
40+0 enregistrements lus
40+0 enregistrements écrits

Que je remets cette carte SD dans son support derrière le chip CBM2199S, alors là le chip n'agit plus, je vois l'entier de la carte SD de 64Gb. Le support se comporte alors comme un SD Card Reader. (USB-2) càd pas très rapide.

May 20 20:31:21 raspberrypi kernel: [272573.464239] scsi 1:0:0:0: Direct-Access     ChipsBnk Flash Reader     5.00 PQ: 0 ANSI: 2
May 20 20:31:21 raspberrypi kernel: [272573.464683] sd 1:0:0:0: Attached scsi generic sg1 type 0
May 20 20:31:21 raspberrypi kernel: [272573.468386] sd 1:0:0:0: [sdb] 122138624 512-byte logical blocks: (62.5 GB/58.2 GiB)
May 20 20:31:21 raspberrypi kernel: [272573.468585] sd 1:0:0:0: [sdb] Write Protect is off
May 20 20:31:21 raspberrypi kernel: [272573.468594] sd 1:0:0:0: [sdb] Mode Sense: 0b 00 00 08
May 20 20:31:21 raspberrypi kernel: [272573.468749] sd 1:0:0:0: [sdb] No Caching mode page found
May 20 20:31:21 raspberrypi kernel: [272573.468757] sd 1:0:0:0: [sdb] Assuming drive cache: write through
May 20 20:31:21 raspberrypi kernel: [272573.473779] sd 1:0:0:0: [sdb] Attached SCSI removable disk

... Et si je remets ces 40 blocks au début d'une carte SD d'au moins 64Gb

root@raspberrypi:~# dd of=/dev/sdb if=/tmp/sdd_16t-401stBlk.raw

Alors que transforme cette carte en SSD de 16Tb...