• clone win disk to a smaller one

    From Piviul@21:1/5 to All on Wed Jun 5 19:20:01 2024
    Ciao a tutti, come da oggetto vorrei clonare un disco windows da 500G su
    cui sono occupati circa 100G su un disco da 250G. Ho provato con
    clonezilla clonando il device e selezionando l'opzione -icds ma mi ha
    dato errore. Ho provato sul disco di destinazione a creare le partizioni manualmente e a clonare partizione per partizione. Il tutto ha
    funzionato senza errori ma poi non fa il boot. Ho provato anche a
    copiare i primi 446 bit del disco con dd ma non è cambiato nulla

    Questo è il disco di destinazione:

    # fdisk -l /dev/sde
    Disk /dev/sde: 238.47 GiB, 256060514304 bytes, 500118192 sectors
    Disk model: DDAK256MAM
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 4096 bytes / 4096 bytes
    Disklabel type: dos
    Disk identifier: 0x00000000

    Device     Boot  Start       End   Sectors   Size Id Type /dev/sde1         2048    206847    204800   100M  7 HPFS/NTFS/exFAT
    /dev/sde2       206848 500118191 499911344 238.4G  7 HPFS/NTFS/exFAT

    Ora che vedo il disk identifier è 0x... che sia questa la causa?

    Piviul

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Marco Ciampa@21:1/5 to All on Wed Jun 5 23:10:01 2024
    Il Wed, Jun 05, 2024 at 03:38:21PM +0200, Piviul ha scritto:
    Ciao a tutti, come da oggetto vorrei clonare un disco windows da 500G su cui sono occupati circa 100G su un disco da 250G. Ho provato con clonezilla clonando il device e selezionando l'opzione -icds ma mi ha dato errore. Ho provato sul disco di destinazione a creare le partizioni manualmente e a clonare partizione per partizione. Il tutto ha funzionato senza errori ma
    poi non fa il boot. Ho provato anche a copiare i primi 446 bit del disco con dd ma non è cambiato nulla

    Questo è il disco di destinazione:

    # fdisk -l /dev/sde
    Disk /dev/sde: 238.47 GiB, 256060514304 bytes, 500118192 sectors
    Disk model: DDAK256MAM
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 4096 bytes / 4096 bytes
    Disklabel type: dos
    Disk identifier: 0x00000000

    Device     Boot  Start       End   Sectors   Size Id Type /dev/sde1         2048    206847    204800   100M  7 HPFS/NTFS/exFAT
    /dev/sde2       206848 500118191 499911344 238.4G  7 HPFS/NTFS/exFAT

    Ora che vedo il disk identifier è 0x... che sia questa la causa?

    Piviul

    No la causa è che è un disco mbr e quindi ha memorizzato, dopo la tabella delle partizioni ma prima della prima partizione, quindi in un "buco"
    nascosto, il codice di secondo livello del boot loader. Per copiarlo devi copiare con dd una bella parte dell'inizio del disco e poi ci rivai sopra
    con la tabella mbr e le altre partizioni. E anche così non è detto che
    parta perché il boot loader di windows è piuttosto pignolo sulla
    geometria del disco, io però un tentativo lo farei. Io di solito copio i
    primi 100M del disco tanto per essere sicuro.

    --

    Amike,
    Marco Ciampa

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Piviul@21:1/5 to Marco Ciampa on Thu Jun 6 08:30:02 2024
    This is a multi-part message in MIME format.
    On 6/5/24 23:04, Marco Ciampa wrote:
    [...]
    No la causa è che è un disco mbr e quindi ha memorizzato, dopo la tabella delle partizioni ma prima della prima partizione, quindi in un "buco" nascosto, il codice di secondo livello del boot loader. Per copiarlo devi copiare con dd una bella parte dell'inizio del disco e poi ci rivai sopra
    con la tabella mbr e le altre partizioni. E anche così non è detto che parta perché il boot loader di windows è piuttosto pignolo sulla
    geometria del disco, io però un tentativo lo farei. Io di solito copio i primi 100M del disco tanto per essere sicuro.

    ma se lo fai dopo la copia non rischi di sovrascrivere la tabella delle partizioni e quindi fare più danni?

    Comunque ho risolto con la boot-repair-disk iso.

    Grazie!

    Piviul

    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body>
    <div class="moz-cite-prefix">On 6/5/24 23:04, Marco Ciampa wrote:<br>
    </div>
    <blockquote type="cite"
    cite="mid:ZmDS6G5qQd1jCz5s@marco-TUXEDO-Pulse-15-Gen2">[...]<span
    style="white-space: pre-wrap">
    </span>
    <pre class="moz-quote-pre" wrap="">No la causa è che è un disco mbr e quindi ha memorizzato, dopo la tabella
    delle partizioni ma prima della prima partizione, quindi in un "buco"
    nascosto, il codice di secondo livello del boot loader. Per copiarlo devi copiare con dd una bella parte dell'inizio del disco e poi ci rivai sopra
    con la tabella mbr e le altre partizioni. E anche così non è detto che
    parta perché il boot loader di windows è piuttosto pignolo sulla
    geometria del disco, io però un tentativo lo farei. Io di solito copio i
    primi 100M del disco tanto per essere sicuro.</pre>
    </blockquote>
    <p>ma se lo fai dopo la copia non rischi di sovrascrivere la tabella
    delle partizioni e quindi fare più danni?</p>
    <p>Comunque ho risolto con la boot-repair-disk iso.</p>
    <p>Grazie!</p>
    <p>Piviul<br>
    </p>
    </body>
    </html>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Marco Ciampa@21:1/5 to All on Thu Jun 6 08:50:01 2024
    Il Thu, Jun 06, 2024 at 08:28:13AM +0200, Piviul ha scritto:
    On 6/5/24 23:04, Marco Ciampa wrote:
    [...]
    No la causa è che è un disco mbr e quindi ha memorizzato, dopo la tabella delle partizioni ma prima della prima partizione, quindi in un "buco" nascosto, il codice di secondo livello del boot loader. Per copiarlo devi copiare con dd una bella parte dell'inizio del disco e poi ci rivai sopra con la tabella mbr e le altre partizioni. E anche così non è detto che parta perché il boot loader di windows è piuttosto pignolo sulla geometria del disco, io però un tentativo lo farei. Io di solito copio i primi 100M del disco tanto per essere sicuro.

    ma se lo fai dopo la copia non rischi di sovrascrivere la tabella delle partizioni e quindi fare più danni?

    Infatti ho detto di farlo prima, ma poco male: basta poi ricopiare mbr e
    le partizioni.

    Comunque ho risolto con la boot-repair-disk iso.

    ... che installa la parte mancante del boot loader nella parte "nascosta"
    del disco mbr... ok tutto è bene quel che finisce bene.

    Nelle partizioni gpt/efi invece è tutto alla luce del sole: il bootloader
    di secondo livello sta nella partizione speciale efi formattata in genere
    FAT32 e non esistono spazi "nascosti" ...

    --

    Amike,
    Marco Ciampa

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Piviul@21:1/5 to Marco Ciampa on Thu Jun 6 09:50:02 2024
    This is a multi-part message in MIME format.
    On 6/6/24 08:45, Marco Ciampa wrote:
    [...]
    Infatti ho detto di farlo prima, ma poco male: basta poi ricopiare mbr e
    le partizioni.

    quindi nell'mbr c'è solo una parte del boot loader ed esiste un boot
    loader di secondo livello messo chissà dove ma sempre sicuramente nei
    primi 200 settori del disco? ...non ne ero a conoscenza, grazie.

    [...]
    Nelle partizioni gpt/efi invece è tutto alla luce del sole: il bootloader
    di secondo livello sta nella partizione speciale efi formattata in genere FAT32 e non esistono spazi "nascosti" ...

    ma nella partizione efi c'è anche il bootloader di primo livello giusto?

    Piviul

    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body>
    <div class="moz-cite-prefix">On 6/6/24 08:45, Marco Ciampa wrote:<br>
    </div>
    <blockquote type="cite"
    cite="mid:ZmFbJIEpIWsaYlvN@marco-TUXEDO-Pulse-15-Gen2">[...]<span
    style="white-space: pre-wrap">
    </span>
    <pre class="moz-quote-pre" wrap="">Infatti ho detto di farlo prima, ma poco male: basta poi ricopiare mbr e
    le partizioni.</pre>
    </blockquote>
    <p>quindi nell'mbr c'è solo una parte del boot loader ed esiste un
    boot loader di secondo livello messo chissà dove ma sempre
    sicuramente nei primi 200 settori del disco? ...non ne ero a
    conoscenza, grazie.</p>
    <p><span style="white-space: pre-wrap">
    </span></p>
    <blockquote type="cite"
    cite="mid:ZmFbJIEpIWsaYlvN@marco-TUXEDO-Pulse-15-Gen2">[...]<span
    style="white-space: pre-wrap">
    </span>
    <pre class="moz-quote-pre" wrap="">Nelle partizioni gpt/efi invece è tutto alla luce del sole: il bootloader
    di secondo livello sta nella partizione speciale efi formattata in genere
    FAT32 e non esistono spazi "nascosti" ...</pre>
    </blockquote>
    <p>ma nella partizione efi c'è anche il bootloader di primo livello
    giusto?</p>
    <p>Piviul<br>
    </p>
    </body>
    </html>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Marco Ciampa@21:1/5 to All on Thu Jun 6 10:50:02 2024
    Il Thu, Jun 06, 2024 at 09:43:22AM +0200, Piviul ha scritto:
    On 6/6/24 08:45, Marco Ciampa wrote:
    [...]
    Infatti ho detto di farlo prima, ma poco male: basta poi ricopiare mbr e
    le partizioni.

    quindi nell'mbr c'è solo una parte del boot loader ed esiste un boot loader di secondo livello messo chissà dove ma sempre sicuramente nei primi 200 settori del disco? ...non ne ero a conoscenza, grazie.

    Nell'mbr c'è spazio per 446 Byte(!) per il boot loader, quindi ci sta
    solo un codice (x86 in real mode) mooooolto piccolo e mooolto basico.

    Se vuoi saperne di più installa il pacchetto "mbr" e poi guarda la guida:

    man install-mbr

    questo binario installa un micro boot loader (appunto solo 446 byte) nel
    primo settore del primo disco della sequenza di avvio, appena prima la
    tabella delle partizioni.

    Quando si installa invece grub, questo installa un piccolo codice di
    "stadio 1" sempre in quel piccolo spazio, ma installa lo "stadio 1.5"
    nello spazio tra il boot sector + tabella partizioni e la prima
    partizione. Lì c'è un "buco" che non è né una partizione né è formattato ma si possono piazzare dei codici da eseguire, cosa che sia il boot
    loader di Windows che grub fanno, spesso andando in coflitto e
    riscrivendosi sopra l'uno con l'altro soprattutto Windows tende a
    riscrivere lo stadio 1.5 di grub durante certi aggiornamenti corposi o
    passaggi di versione.


    [...]
    Nelle partizioni gpt/efi invece è tutto alla luce del sole: il bootloader di secondo livello sta nella partizione speciale efi formattata in genere FAT32 e non esistono spazi "nascosti" ...

    ma nella partizione efi c'è anche il bootloader di primo livello giusto?

    Nell'efi il boot loader di primo livello non serve (o meglio il primo è
    tutto il boot loader completo per cui non ci sono altri livelli) perché
    il firmware "capisce" le formattazioni (almeno FAT32 e iso9660/UDF) e può leggere direttamente il file del boot loader dalla partizione FAT32 cosa
    che il vecchio BIOS non poteva fare, si limitava ad eseguire il codice
    x86 che trovava nei primi 446 byte del primo settore del primo disco
    impostato da BIOS.

    Quindi efi carica direttamente il boot loader completo dalla partizione
    "efi" che solitamente è grande abbastanza (100MByte) per contenerne
    diversi... in genere grub + windows

    --

    Amike,
    Marco Ciampa

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Piviul@21:1/5 to Marco Ciampa on Thu Jun 6 18:10:01 2024
    This is a multi-part message in MIME format.
    On 6/5/24 23:04, Marco Ciampa wrote:
    [...]
    No la causa è che è un disco mbr e quindi ha memorizzato, dopo la tabella delle partizioni ma prima della prima partizione, quindi in un "buco" nascosto, il codice di secondo livello del boot loader. Per copiarlo devi copiare con dd una bella parte dell'inizio del disco e poi ci rivai sopra
    con la tabella mbr e le altre partizioni. E anche così non è detto che parta perché il boot loader di windows è piuttosto pignolo sulla
    geometria del disco, io però un tentativo lo farei. Io di solito copio i primi 100M del disco tanto per essere sicuro.

    Ho provato a copiare i primi 100M, ripartizionare e con clonezilla
    copiare una partizione alla volta, ha funzionato. Grazie Marco!

    Piviul


    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body>
    <div class="moz-cite-prefix">On 6/5/24 23:04, Marco Ciampa wrote:<br>
    </div>
    <blockquote type="cite"
    cite="mid:ZmDS6G5qQd1jCz5s@marco-TUXEDO-Pulse-15-Gen2">[...]<span
    style="white-space: pre-wrap">
    </span>
    <pre class="moz-quote-pre" wrap="">No la causa è che è un disco mbr e quindi ha memorizzato, dopo la tabella
    delle partizioni ma prima della prima partizione, quindi in un "buco"
    nascosto, il codice di secondo livello del boot loader. Per copiarlo devi copiare con dd una bella parte dell'inizio del disco e poi ci rivai sopra
    con la tabella mbr e le altre partizioni. E anche così non è detto che
    parta perché il boot loader di windows è piuttosto pignolo sulla
    geometria del disco, io però un tentativo lo farei. Io di solito copio i
    primi 100M del disco tanto per essere sicuro.</pre>
    </blockquote>
    <p>Ho provato a copiare i primi 100M, ripartizionare e con
    clonezilla copiare una partizione alla volta, ha funzionato.
    Grazie Marco!</p>
    <p>Piviul</p>
    <br>
    </body>
    </html>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)