Cancellazione partizione

11 risposte [Ultimo contenuto]
Ritratto di orlando
orlando
(Junior)
Offline
Junior
Iscritto: 09/12/2013
Messaggi: 31

Salve a tutti/e,

vi scrivo perché vorrei eliminare una partizione su cui ho installato Ubuntu. Mi spiego meglio:

usavo ubuntu e ho deciso di passare a debian, nel fare ciò ho preso un po' di spazio e l'ho assegnato a debian (sda2). Contemporaneamente ho, nella fase di installazione, mantenuto la vecchia home (sda3) (che era separata da /) e quindi da debian accedo tranquillamente alla vecchia e alla nuova home (che però si trova in sda4 ma dove a parte i programmi non ci metto niente).

Ora che non mi serve più ubuntu vorrei liberare i Gb dove è ancora installato (sda2) senza toccare la partizione delle vecchia home (sda3), originariemente creata con Ubuntu.

la mia idea era di cancellare la partizione di Ubuntu (sda2) con gparted e liberarne lo spazio. Sono indeciso però perché non vorrei la cosa avesse ripercursione sulla home vecchia (sda3) dove ho i miei documenti.
Inoltre nella vecchia home ci sono le cartelle di vari programmi che ho installato su Ubuntu. Come me ne libererò? Li elimino come se fossereo delle semplici cartelle o c'è da fare altro?

ecco la situazione:

Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048     4296703     2147328   82  Linux swap / Solaris
/dev/sda2   *     4296704    43358207    19530752   83  Linux
/dev/sda3        43358208   275427327   116034560   83  Linux
/dev/sda4       275427328   312580095    18576384   83  Linux
 

Ritratto di mcortese
mcortese
(Moderatore)
Offline
Moderatore
Iscritto: 27/02/2009
Messaggi: 2918

Puoi cancellare i dati della sda2, ma poi che te ne fai dello spazio liberato?

Io farei così: copierei (con una pipe di due tar) il contenuto di sda4 (in cui immagino ci sia Debian) in sda2 e quello diventerebbe il nuovo disco di sistema. Poi eliminerei la sda4 e allargherei sda3 per inglobare tutto lo spazio al fondo. Infine userei resize2fs su sda3 per fare digerire al SO l'aumento di volume.

Ovviamente il tutto va fatto off-line, quindi avviando da una live o un disco di ripristino.

Ritratto di orlando
orlando
(Junior)
Offline
Junior
Iscritto: 09/12/2013
Messaggi: 31

Avevo pensato di formattare sda2 e farlo diventare un semplice un disco interno da usare come, non so, archivio etc ma la tua soluzione sembra davvero molto più gagliarda! come faccio tutto cio? Cosa intendi con "pipe di due tar"? La live di ubuntu andrebbe bene immagino no?

Ritratto di frank67
frank67
(Monster)
Offline
Monster
Iscritto: 10/07/2013
Messaggi: 487

orlando ha scritto:

Cosa intendi con "pipe di due tar"?


Spero non se la prenda mcortese se mi intrometto Smile per risponderti penso stia facendo riferimento ad un vecchio tips di Alan Cox trasferire il "contenuto" di un mount point ad un altro cioè quindi mettere tutto quello che c'è in una partizione in un'altra e per non copiare anche le strutture dati dei mount point /dev /sys /proc lo devi fare a sistema non avviato quindi usare una live o un dvd di installazione in rescue mode. Il comando è:
~# cd /mnt/orig
~# (tar cpsf - . --exclude lost+found --same-owner  --numeric-owner --sparse) | (cd /mnt/dest/ && tar xpsf - --atime-preserve --same-owner  --numeric-owner --sparse)

orlando ha scritto:

La live di ubuntu andrebbe bene immagino no?


Si, però prima chiarisci cosa vuoi tenere e cosa no: "vecchia home, nuova home"? Debian è ancora da installare? Non c'è Debian su sda2, perché la vuoi cancellare?

Ciao, Franco

Ritratto di mcortese
mcortese
(Moderatore)
Offline
Moderatore
Iscritto: 27/02/2009
Messaggi: 2918

La pipe di due tar, nota anche come "the tar pipe", è il metodo più efficiente e sicuro di spostare un albero di directory da una parte all'altra preservando permessi, proprietari, collegamenti, ecc. Si fa così (mi raccomando da root):

( cd SRC && tar cf - . ) | ( cd DST && tar xpf - )
dove SRC e DST sono le directory rispettivamente di origine e destinazione.

Spiegazione. Sono due processi in parallelo collegati in pipe: il primo va nella directory SRC e archivia (c) in un file .tar tutto quello che trova... solo che l'archivio .tar che crea non è un file vero e proprio, bensì è un flusso dati che passa attraverso la pipe e arriva al secondo processo. Questo si sposta nella directory DST e scompatta (x) l'archivio che sta ricevendo dalla pipe preservando (p) i metadati (proprietario, permessi...). I due processi vanno avanti così, uno legge e l'altro scrive.

Sì la live di Ubuntu dovrebbe andare. Le operazioni da fare, grosso modo, sono:

mkdir /mnt/sda2 /mnt/sda4
mkfs /dev/sda2
mount /dev/sda2 /mnt/sda2
mount /dev/sda4 /mnt/sda4
( cd /mnt/sda4 && tar cf - . ) | ( cd /mnt/sda2 && tar xpf - )
umount /mnt/sda2
umount /mnt/sda4
fdisk /dev/sda # eliminare la partizione 4 e espandere la 3
resize2fs /dev/sda3

Poi forse andrebbe aggiornato il file /etc/fstab e riconfigurato Grub...

Ritratto di orlando
orlando
(Junior)
Offline
Junior
Iscritto: 09/12/2013
Messaggi: 31

grazie a tutti per le risposte molto dettagliate e precise! Seguiro questa proceduara allora e grazie per tutti i comandi!

Ci sono dei comandi particolari da dare per cancellare ed espandere, oppure faccio con gparted?

Mi trovo e approfitto della gentilezza di tutti voi per chiedere qualche altra cosa XD!

Per l'aggiornamento di fcstab ho trovato questo link:
http://mitiemaniedigitali.wordpress.com/2010/05/13/aggiornare-fstab/

Dite che va bene se seguo qua?

Per quanto riguarda il grub mi basta dare update-grub oppure c'è di più da fare?

Ritratto di mcortese
mcortese
(Moderatore)
Offline
Moderatore
Iscritto: 27/02/2009
Messaggi: 2918

Visto che né la swap, né la home cambiano disco, l'unica correzione necessaria è la posizione della root (/). Se il tuo fstab usa già gli UUID non devi fare proprio niente. Se invece richiama /dev/sda4, devi correggerlo in /dev/sda2.

Per Grub, update-grub dovrebbe essere sufficiente.

Ritratto di orlando
orlando
(Junior)
Offline
Junior
Iscritto: 09/12/2013
Messaggi: 31

ok, allora procedo e vi aggiorno. Ah devo correggere un piccolo errore. Nella sda2 c'è ubuntu. Nella sda4 c'è debian e nella sda3 la home originale di ubuntu e la seconda home di debian. Quindi voglio eliminare tutta la roba in sda2 e metterci dentro debian. Cambia qualcosa questo in quello che abbiamo detto finora?
Perdonatemi l'insistenza voglio solo essere sicuro di non fare guai.

Mi sembra però che dai comandi che mi hai dato mccortese la procedura non cambia. Devo cmq spostare sda4 in sda2. Devo forse formattare sda2 prima? Formatto la partizione e la ricreo?

Ritratto di orlando
orlando
(Junior)
Offline
Junior
Iscritto: 09/12/2013
Messaggi: 31

ok,

ci sono riuscito Smile. Confesso che però i comandi di sopra per copiare e trasferire non hanno funzionato Worried. ho ricevuto un errore che aveva a che fare con il comando cd. Per ovviare ho usato gparted per copiare la sda4 nella sda2 ed ha funzionato.

In seguito però il grub non andava quindi ho usato boot repair e ora vi scrivo dal mio bel debian funzionanete senza partizioni inutili Smile. Grazie mille per l'aiuto.

il mio file fcstab è però un po' strano e quando avvio debian compaiono alcuni messaggi di errore.

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda4 during installation
UUID=bd7c4de0-3fbd-4a65-83f2-a91a74117379 /               ext4    errors=remount-ro 0       1
# /home was on /dev/sda3 during installation
UUID=fd2b1204-3c4f-4fad-9128-e35f327f2f50 /home           ext4    defaults        0       2
# swap was on /dev/sda1 during installation
UUID=749d17dd-79a9-47d6-982c-6797f5602384 none            swap    sw              0       0
/dev/sr0        /media/cdrom0   udf,iso9660 user,noauto     0       0

Ritratto di theShort
theShort
(Collaboratore)
Offline
Collaboratore
Iscritto: 02/08/2006
Messaggi: 596

@mcortese:

mcortese ha scritto:


( cd SRC && tar cf - . ) | ( cd DST && tar xpf - )

dove SRC e DST sono le directory rispettivamente di origine e destinazione.

Spiegazione. Sono due processi in parallelo collegati in pipe: il primo va nella directory SRC e archivia (c) in un file .tar tutto quello che trova... solo che l'archivio .tar che crea non è un file vero e proprio, bensì è un flusso dati che passa attraverso la pipe e arriva al secondo processo. Questo si sposta nella directory DST e scompatta (x) l'archivio che sta ricevendo dalla pipe preservando (p) i metadati (proprietario, permessi...). I due processi vanno avanti così, uno legge e l'altro scrive.

Fantastica questa mossa! Non la conoscevo! Love Struck Beata ignoranza... Tongue

@orlando:
Precisamente cosa ti stranisce nel tuo fstab? Che tipo di errori ricevi all'avvio? A parte questo il sistema funziona bene?

.theShort Big Grin

Ritratto di mcortese
mcortese
(Moderatore)
Offline
Moderatore
Iscritto: 27/02/2009
Messaggi: 2918

Credo che il tuo fstab non sia aggiornato. La colpa è mia che ho detto erroneamente "se il tuo fstab usa già gli UUID non devi fare proprio niente".

Sbagliato: l'UUID associato a / (quello che inizia con bd7c4de0) è probabilmente ancora l'UUID della partizione sda4, che non esiste più. Da qui i messaggi d'errore. Poi il tutto funziona comunque perché il kernel obbedisce a Grub, non a fstab, ma questa non è una scusa per tenere la configurazione errata! Wink

Verifica con blkid qual è l'UUID del disco principale (sda2) e mettilo al posto del bd7c4de0...