AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / ubuntu / Perguntas / 1394337
Accepted
Mario Palumbo
Mario Palumbo
Asked: 2022-02-23 08:18:22 +0800 CST2022-02-23 08:18:22 +0800 CST 2022-02-23 08:18:22 +0800 CST

sfdisk: crie uma partição da direita

  • 772

Eu quero criar a partição 2 com um tamanho especificado, enquanto a partição 1 ocupa o resto do disco:

echo -en 'g\nw' | fdisk "$2" #create gpt table
echo -en ',1331200\n,,U' | sudo sfdisk "/dev/sda" -W always

O último comando cria a partição esquerda de 650MB e a direita ocupando o restante do disco, mas como já especifiquei, não é disso que preciso. Para criar a partição direita de 650 MB e a esquerda ocupando o restante do disco, pensei em fazer algo assim:

echo -en ',-1331200\n,,U' | sudo sfdisk "/dev/sda" -W always

com o pensamento de que os valores negativos começaram da direita, mas o -sinal é completamente ignorado e o comando tem o mesmo efeito que aquele sem o -sinal.

Como crio uma partição começando do lado direito usando sfdisk?

partitioning
  • 1 1 respostas
  • 342 Views

1 respostas

  • Voted
  1. Best Answer
    Andrew Lowther
    2022-02-24T16:19:09+08:002022-02-24T16:19:09+08:00

    Não vejo nada na sfdiskdocumentação que sugira que suporte um valor relativo negativo. Funcionaria para calcular a posição inicial da partição?

    Vou demonstrar usando um arquivo de loopback esparso simulando um disco de 2GB

    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)
    

    A posição inicial de sua partição de 650 MB pode ser encontrada subtraindo 650 MB do final do disco. $(blockdev --getsize64 /dev/loop6) / 1024fornece o tamanho do disco em KiB. 650 * 1024é 650MiB em KiB. Junte-os para descobrir quantos KiB usar para a primeira partição.

    root@ubuntu:~# echo $(( $(blockdev --getsize64 /dev/loop6) / 1024 - (650 * 1024) ))
    1431552
    

    Este valor pode ser usado diretamente ao criar as partições comsfdisk

    root@ubuntu:~# sfdisk /dev/loop6 <<EOF
    > label: gpt
    > 1431552KiB,,,-
    > ,,,-
    > EOF
    ...
    New situation:
    Disklabel type: gpt
    Disk identifier: 77816CA7-8A39-974B-A78D-CFCB2A5D66EC
    
    Device         Start     End Sectors  Size Type
    /dev/loop6p1 2863104 4194270 1331167  650M Linux filesystem
    /dev/loop6p2    2048 2863103 2861056  1.4G Linux filesystem
    ...
    

    Você também pode calcular o valor em tempo real

    root@ubuntu:~# wipefs -a /dev/loop6
    ...
    root@ubuntu:~# sfdisk /dev/loop6 <<EOF
    > label: gpt
    > $(( $(blockdev --getsize64 /dev/loop6) / 1024 - (650 * 1024) ))KiB,,,-
    > ,,,-
    > EOF
    ...
    New situation:
    Disklabel type: gpt
    Disk identifier: 661C7E48-3342-3842-81BE-1AF4CB51BC6E
    
    Device         Start     End Sectors  Size Type
    /dev/loop6p1 2863104 4194270 1331167  650M Linux filesystem
    /dev/loop6p2    2048 2863103 2861056  1.4G Linux filesystem
    ...
    

    Os exemplos anteriores criaram sua partição de 650 MB primeiro. Isso pode ser um pouco confuso, pois as partições não estão na ordem típica. Você pode criar a partição "resto do disco" primeiro para evitar confusão.

    root@ubuntu:~# wipefs -a /dev/loop6
    ...
    root@ubuntu:~# sfdisk /dev/loop6 <<EOF
    > label: gpt
    > ,$(( $(blockdev --getsize64 /dev/loop6) / 1024 - (650 * 1024) ))KiB,,-
    > ,,,-
    > EOF
    ...
    New situation:
    Disklabel type: gpt
    Disk identifier: 3EF08C46-AF4F-1F48-B8AF-A65D67C438B7
    
    Device         Start     End Sectors  Size Type
    /dev/loop6p1    2048 2865151 2863104  1.4G Linux filesystem
    /dev/loop6p2 2865152 4194270 1329119  649M Linux filesystem
    ...
    
    • 1

relate perguntas

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Existe um comando para listar todos os usuários? Também para adicionar, excluir, modificar usuários, no terminal?

    • 9 respostas
  • Marko Smith

    Como excluir um diretório não vazio no Terminal?

    • 4 respostas
  • Marko Smith

    Como descompactar um arquivo zip do Terminal?

    • 9 respostas
  • Marko Smith

    Como instalo um arquivo .deb por meio da linha de comando?

    • 11 respostas
  • Marko Smith

    Como instalo um arquivo .tar.gz (ou .tar.bz2)?

    • 14 respostas
  • Marko Smith

    Como listar todos os pacotes instalados

    • 24 respostas
  • Martin Hope
    Flimm Como posso usar o docker sem sudo? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    led-Zepp Como faço para salvar a saída do terminal em um arquivo? 2014-02-15 11:49:07 +0800 CST
  • Martin Hope
    ubuntu-nerd Como descompactar um arquivo zip do Terminal? 2011-12-11 20:37:54 +0800 CST
  • Martin Hope
    TheXed Como instalo um arquivo .deb por meio da linha de comando? 2011-05-07 09:40:28 +0800 CST
  • Martin Hope
    Ivan Como listar todos os pacotes instalados 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    David Barry Como determino o tamanho total de um diretório (pasta) na linha de comando? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher "Os seguintes pacotes foram retidos:" Por que e como resolvo isso? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford Como os PPAs podem ser removidos? 2010-07-30 01:09:42 +0800 CST

Hot tag

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve