Sainte-Croix, le vendredi 09 juin 2023 à 17:36...
Cela semble joli.
Connecteur USB-C
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:
Voilà, voilà...
C'est bien vide, tout ça!
Une carte SD de 64Gb:
MMSZ64GG9T25 TO
XL 2982 2304
MADE IN CHINA
Piloté par un chip:
Chipsbank
CBM2199S
EK5457
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 je re-transforme cette carte en SSD de 16Tb! :-p