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 / unix / Perguntas / 788429
Accepted
elbarna
elbarna
Asked: 2024-12-20 12:51:32 +0800 CST2024-12-20 12:51:32 +0800 CST 2024-12-20 12:51:32 +0800 CST

fmthard/prtvtoc: o que está errado?

  • 772

Quero entender como fazer uma nova fatia sem usar o formato. Esta é a situação original (funcionando)

* /dev/rdsk/c0t2d0s2 partition map
*
* Dimensions:
*     512 bytes/sector
*      63 sectors/track
*     255 tracks/cylinder
*   16065 sectors/cylinder
*    2608 cylinders
*    2606 accessible cylinders
*
* Flags:
*   1: unmountable
*  10: read-only
*
* Unallocated space:
*       First     Sector    Last
*       Sector     Count    Sector 
*    41495895    369495  41865389
*
*                          First     Sector    Last
* Partition  Tag  Flags    Sector     Count    Sector  Mount Directory
       1      9    00      16065  20980890  20996954
       2      9    00   20996955  10490445  31487399
       3      9    00   31487400  10008495  41495894
       8      1    01          0     16065     16064

O tamanho das partições (melhor fatia) é de 10 GB para a primeira, 5 GB para a segunda e 4,77 GB para a terceira.

Quero criar uma quarta fatia (número 4) com um tamanho de 2 GB e reduzir a terceira para 2 GB

Eu edito este arquivo (salvando o antigo como backup)

* /dev/rdsk/c0t2d0s2 partition map
*
* Dimensions:
*     512 bytes/sector
*      63 sectors/track
*     255 tracks/cylinder
*   16065 sectors/cylinder
*    2608 cylinders
*    2606 accessible cylinders
*
* Flags:
*   1: unmountable
*  10: read-only
*
* Unallocated space:
*       First     Sector    Last
*       Sector     Count    Sector
*    41495895    369495  41865389
*
*                          First     Sector    Last
* Partition  Tag  Flags    Sector     Count    Sector  Mount Directory
       1      9    00      16065  20980890  20996954
       2      9    00   20996955  10490445  31487399
       3      9    00   31487400  4194304   35681703
       4      9    00   35681704  4194304   41865389
       8      1    01          0     16065     16064

O tamanho parece estar correto (2048 mb para cada fatia)

4194304*512 = 2147483648
2147483648*1024 = 2199023255552
2199023255552/1024 = 2147483648
2147483648/1024 = 2097152
2097152/1024 = 2048

Mas quando tento criar a nova tabela de partição...

fmthard -s file.map /dev/rdsk/c0t2d0s2  
Partition 3 not aligned on cylinder boundary: "       3      9    00   31487400  4194304   35681703"

Onde está minha falha? Eu sei que o formato é muito fácil, mas eu quero aprender desse jeito também.

partition
  • 1 1 respostas
  • 19 Views

1 respostas

  • Voted
  1. Best Answer
    elbarna
    2024-12-20T13:47:41+08:002024-12-20T13:47:41+08:00

    Solução/solução alternativa encontrada. Eu sigo a "regra do cilindro". Você pode criar qualquer tamanho que quiser (claro, sem exceder o tamanho do disco e), mas cada fatia deve ser "composta" de um tot de cilindros que devem ser "vinculados" a uma fatia, por exemplo: partição 1 usa 1-1000 cilindros, 2 usa 1001-1500, etc. e isso está correto, partição 1 usa 1-1000 cilindros e 2 usa 1000-1500 não está correto porque um cilindro não pode ser "compartilhado", primeiro calcule o tamanho do cilindro, para evitar cálculos matemáticos chatos, criei uma fatia de 1 cilindro com formato

      2 alternates    wm    1307 - 1307        7.84MB    (1/0/0)       16065
    

    Então, se eu quiser criar uma fatia de 3000 MB, tenho que calcular quantas unidades de 7,84 MB (tamanho do cilindro) posso usar para "alcançar" 3000 MB

    Eu fiz esses cálculos

    3000/7.84 #3000 is partition size in mb 2.93g approx
    382       #composed of 382 cylinders (result of 3000/7.84)
    382*16065 #16065 is the number of sectors for each cylinder
    

    O resultado final é 6136830 setores (2,93 GB) e é o resultado de 382*16065

    Então edito o arquivo para usar a primeira partição de 10 GB e a 2, 3 e 4 de 3.000 MB.

    * /dev/rdsk/c0t2d0s2 partition map
    *
    * Dimensions:
    *     512 bytes/sector
    *      63 sectors/track
    *     255 tracks/cylinder
    *   16065 sectors/cylinder
    *    2608 cylinders
    *    2606 accessible cylinders
    *
    * Flags:
    *   1: unmountable
    *  10: read-only
    *
    * Unallocated space:
    *       First     Sector    Last
    *       Sector     Count    Sector 
    *    21013020  20852370  41865389
    *
    *                          First     Sector    Last
    * Partition  Tag  Flags    Sector     Count    Sector  Mount Directory
           1      9    00      16065  20980890  20996954
           2      9    00   20996955   6136830  27133784
           3      9    00   27133785   6136830  33270614
           4      9    00   33270615   6136830  39407445
           8      1    01          0     16065     16064
    

    Vai funcionar? Sim

    sudo fmthard -s file.map /dev/rdsk/c0t2d0s2  
    fmthard:  New volume table of contents now in place.
    

    Testando newfs e mount funciona.

    EDIT: Também descobri que nem todos os tamanhos funcionam, se falhar, encontrei esta solução alternativa

    Esta configuração não funciona

          2      9    00      16065  16787925  16803990
          3      9    00   16803991  16787925  33591916
          8      1    01          0     16065     16064
    

    este sim (eu removo 1 setor do tamanho final da partição anterior e adiciono +1 ao início da próxima partição, finalmente -1 setor removido do setor final da última/próxima partição)

       2      9    00      16065  16787925  16803989
       3      9    00   16803990  16787925  33591915
       8      1    01          0     16065     16064
    

    esperando uma explicação melhor e uma fórmula correta para calcular cada tamanho de partição, considerarei esta solução alternativa válida.

    EDIT2: Eu tentei minha solução alternativa e funciona bem. Quero adicionar uma partição de 9 GB

    Esta configuração me dá o erro "Partição 4 não alinhada no limite do cilindro"

       2      9    00      16065  16787925  16803989
       3      9    00   16803990  16787925  33591915
       4      9    00   33591916  18876375  52468291
       8      1    01          0     16065     16064
    

    Isso funciona perfeitamente

       2      9    00      16065  16787925  16803989
       3      9    00   16803990  16787925  33591914
       4      9    00   33591915  18876375  52468290
       8      1    01          0     16065     16064
    

    mesmo o newfs não retorna nenhum erro (exceto um aviso para alguns setores não alocados)

    sudo newfs /dev/rdsk/c0t2d0s4   
    newfs: construct a new file system /dev/rdsk/c0t2d0s4: (y/n)? y
    Warning: 4138 sector(s) in last cylinder unallocated
    /dev/rdsk/c0t2d0s4:     18876374 sectors in 3073 cylinders of 48 tracks, 128 sectors
            9217.0MB in 193 cyl groups (16 c/g, 48.00MB/g, 5824 i/g)
    super-block backups (for fsck -F ufs -o b=#) at:
     32, 98464, 196896, 295328, 393760, 492192, 590624, 689056, 787488, 885920,
     17996704, 18095136, 18193568, 18292000, 18390432, 18488864, 18587296,
     18685728, 18784160, 18874400
    
    • 0

relate perguntas

  • Como montar partições de unidade zfs no solaris 11.3

  • Área de memória Flash Nand de backup

  • Como particionar corretamente um SSD para uma configuração de inicialização dupla

  • Instale várias distribuições Linux em paralelo

  • fdisk não vendo resize2fs encolhendo partição desmontada

Sidebar

Stats

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

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

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