Como eu monto a partição / dev / sda do CentOS-7-x86_64-Minimal-1511.iso?

1

Eu preciso de alguma ajuda para descobrir como montar a partição 1 (xfs, boot) do dispositivo / dev / sda a partir do CentOS-7-x86_64-Minimal-1511.iso em uma versão de lançamento do CentOS Linux 7.2.1511 (Core) VM . Existem vários dispositivos na imagem. Esta partição está no segundo dispositivo. O primeiro dispositivo é a própria imagem ISO.

Algumas informações do sistema

$ cat /etc/redhat-release 
CentOS Linux release 7.2.1511 (Core) 
$ uname -a
Linux localhost.localdomain 3.10.0-327.3.1.el7.x86_64 #1 SMP Wed Dec 9 14:09:15 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
$ whoami
root

Isso é o que eu fiz até agora.

Passo 1. Faça o download e verifique a ISO

$ wget http://ftp.riken.jp/Linux/centos/7.2.1511/isos/x86_64/CentOS-7-x86_64-Minimal-1511.iso
<output snipped>
$ ls -l CentOS-7-x86_64-Minimal-1511.iso 
-rw-rw-r--. 1 jlinoff jlinoff 632291328 Dec  9 15:03 CentOS-7-x86_64-Minimal-1511.iso
$ md5sum CentOS-7-x86_64-Minimal-1511.iso 
88c0437f0a14c6e2c94426df9d43cd67  CentOS-7-x86_64-Minimal-1511.iso
$ # matches 88c0437f0a14c6e2c94426df9d43cd67 from http://ftp.riken.jp/Linux/centos/7.2.1511/isos/x86_64/md5sum.txt

Etapa 2. Visualizar os dispositivos disponíveis usando o parted

$ parted CentOS-7-x86_64-Minimal-1511.iso print devices
/home/jlinoff/work/iso/CentOS-7-x86_64-Minimal-1511.iso (632MB)
/dev/sda (21.5GB)
/dev/mapper/centos-swap (2147MB)
/dev/mapper/centos-root (18.8GB)
/dev/sr0 (59.0MB)

Etapa 3. Visualizar as partições

$ parted CentOS-7-x86_64-Minimal-1511.iso select /dev/sda unit B print
Using /dev/sda
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sda: 21474836480B
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start       End           Size          Type     File system  Flags
 1      1048576B    525336575B    524288000B    primary  xfs          boot
 2      525336576B  21474836479B  20949499904B  primary               lvm

Etapa 4. Montar a partição 1 com base no deslocamento

$ mkdir -m 0777 /tmp/foo
$ mount -t xfs -o loop,ro,offset=1048576 CentOS-7-x86_64-Minimal-1511.iso /tmp/mnt
mount: wrong fs type, bad option, bad superblock on /dev/loop0,
       missing codepage or helper program, or other error

       In some cases useful info is found in syslog - try
       dmesg | tail or so.

Etapa 5. Tente descobrir o deslocamento correto

Parecia óbvio que o offset estava errado, então tentei descobrir com base no sistema de arquivos anterior, incorporando o endpoint do dispositivo anterior:

$ parted CentOS-7-x86_64-Minimal-1511.img select /home/jlinoff/work/iso/CentOS-7-x86_64-Minimal-1511.img unit B print
Using /home/jlinoff/work/iso/CentOS-7-x86_64-Minimal-1511.img
Model:  (file)
Disk /home/jlinoff/work/iso/CentOS-7-x86_64-Minimal-1511.img: 632291328B
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start    End       Size      Type     File system  Flags
 2      196608B  6615039B  6418432B  primary

$ bc
1048576 + 6615039
7663615

Eu tentei offset = 7663615 e offset = 6615039. O mesmo erro.

Esta é a lista completa de todos os dispositivos.

$ parted CentOS-7-x86_64-Minimal-1511.iso unit B print all
Warning: Unable to open /dev/sr0 read-write (Read-only file system).  /dev/sr0
has been opened read-only.
Error: /dev/sr0: unrecognised disk label
Model:  (file)
Disk /home/jlinoff/work/iso/CentOS-7-x86_64-Minimal-1511.iso: 632291328B
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start    End       Size      Type     File system  Flags
 2      196608B  6615039B  6418432B  primary


Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sda: 21474836480B
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start       End           Size          Type     File system  Flags
 1      1048576B    525336575B    524288000B    primary  xfs          boot
 2      525336576B  21474836479B  20949499904B  primary               lvm


Model: Linux device-mapper (linear) (dm)
Disk /dev/mapper/centos-swap: 2147483648B
Sector size (logical/physical): 512B/512B
Partition Table: loop
Disk Flags: 

Number  Start  End          Size         File system     Flags
 1      0B     2147483647B  2147483648B  linux-swap(v1)


Model: Linux device-mapper (linear) (dm)
Disk /dev/mapper/centos-root: 18756927488B
Sector size (logical/physical): 512B/512B
Partition Table: loop
Disk Flags: 

Number  Start  End           Size          File system  Flags
 1      0B     18756927487B  18756927488B  xfs

O que estou fazendo de errado?

    
por Joe Linoff 24.12.2015 / 17:40

1 resposta

1

losetup(8) tem uma opção ( -P ou --partscan ) que pode procurar por partições dentro de um arquivo de imagem e, em seguida, mapeá-las para dispositivos de bloco virtual, para que:

$ losetup -a
/dev/loop0: []: yourisoimage.iso

... você poderá ver dispositivos de loop adicionais referindo-se a partições:

$ ls /dev/loop*
/dev/loop0
/dev/loop0p1
/dev/loop0p2
/dev/loop-control

Use o seguinte comando para alocar automaticamente um novo dispositivo loopX e procurar partições adicionais:

$ losetup -f -P yourisoimage.iso

Em seguida, monte o dispositivo de loop correspondente sem a opção -o loop mount.

EDITAR : depois de ler seu comentário abaixo, acho que alguns esclarecimentos estão em ordem.

O que eu acho que está acontecendo aqui é que você está procurando por um coelho no galinheiro.

O que você está vendo no segundo passo acima é a lista de todos dispositivos no sistema, não apenas uma lista de partições no arquivo ISO. Seu comando inclui um parâmetro falso (o nome do arquivo ISO) e parted está listando apenas todas as partições que ele vê em qualquer dispositivo.

O que você provavelmente está tentando fazer é montar /dev/sda2 do disco físico /dev/sda que não tem absolutamente nada a ver com o arquivo ISO do CentOS.

Além disso, como essa partição não é uma partição do sistema de arquivos, mas um volume físico (da fama do LVM), não há um sistema de arquivos presente diretamente nela.

Para poder acessar seu conteúdo, você deve usar pvscan para descobrir todos os volumes físicos no sistema, vgchange -ay para ativar todos os grupos de volumes e, em seguida, vgs e lvs para ver a lista de volumes grupos e volumes lógicos.

O conteúdo é acessado com um nome especial que lê /dev/<vgname>/<lvname> , portanto, para um grupo de volumes denominado foo e um volume lógico denominado bar , o nome seria /dev/foo/bar .

O que você monta é, portanto, /dev/foo/bar e não /dev/sda2 .

    
por 24.12.2015 / 17:55

Tags