Nu văd nimic în sfdisk
documentație care sugerează că susține o valoare relativă negativă. Ar funcționa pentru a calcula poziția de pornire a partiției?
Voi demonstra utilizarea unui fișier loopback rar care simulează un disc de 2 GB
root@ubuntu:~# fallocate -l 2G filesystem.img
root@ubuntu:~# losetup -f filesystem.img
root@ubuntu:~# losetup -a | grep filesystem.img
/dev/loop6: [2049]:20 (/root/filesystem.img)
Poziția de început a partiției dvs. de 650 MB poate fi găsită scăzând 650 MB de la sfârșitul discului. $(blockdev --getsize64 /dev/loop6) / 1024
furnizează dimensiunea discului în KiB. 650 * 1024
este de 650 MiB în KiB. Puneți-le împreună pentru a afla câți KiB să folosiți pentru prima partiție.
root@ubuntu:~# echo $(( $(blockdev --getsize64 /dev/loop6) / 1024 - (650 * 1024) ))
1431552
Această valoare poate fi utilizată direct la crearea partițiilor cu sfdisk
root@ubuntu:~# sfdisk /dev/loop6 <<EOF
> etichetă: gpt
> 1431552 KiB,,,-
> ,,,-
> EOF
...
Situație nouă:
Tip etichetă de disc: gpt
Identificator disc: 77816CA7-8A39-974B-A78D-CFCB2A5D66EC
Dispozitiv Start End Sectors Size Type
/dev/loop6p1 2863104 4194270 1331167 Sistem de fișiere Linux 650M
/dev/loop6p2 2048 2863103 2861056 Sistem de fișiere Linux 1.4G
...
De asemenea, puteți calcula valoarea din mers
root@ubuntu:~# wipefs -a /dev/loop6
...
root@ubuntu:~# sfdisk /dev/loop6 <<EOF
> etichetă: gpt
> $(( $(blockdev --getsize64 /dev/loop6) / 1024 - (650 * 1024) ))KiB,,,-
> ,,,-
> EOF
...
Situație nouă:
Tip etichetă de disc: gpt
Identificator disc: 661C7E48-3342-3842-81BE-1AF4CB51BC6E
Dispozitiv Start End Sectors Size Type
/dev/loop6p1 2863104 4194270 1331167 Sistem de fișiere Linux 650M
/dev/loop6p2 2048 2863103 2861056 Sistem de fișiere Linux 1.4G
...
Exemplele anterioare v-au creat mai întâi partiția de 650 MB. Acest lucru poate fi puțin confuz, deoarece partițiile nu sunt în ordinea tipică. Puteți crea mai întâi partiția „restul discului” pentru a evita confuzia.
root@ubuntu:~# wipefs -a /dev/loop6
...
root@ubuntu:~# sfdisk /dev/loop6 <<EOF
> etichetă: gpt
> ,$(( $(blockdev --getsize64 /dev/loop6) / 1024 - (650 * 1024) ))KiB,,-
> ,,,-
> EOF
...
Situație nouă:
Tip etichetă de disc: gpt
Identificator disc: 3EF08C46-AF4F-1F48-B8AF-A65D67C438B7
Dispozitiv Start End Sectors Size Type
/dev/loop6p1 2048 2865151 2863104 Sistem de fișiere Linux 1.4G
/dev/loop6p2 2865152 4194270 1329119 649M sistem de fișiere Linux
...