Newsgroup: it.comp.os.linux.sys
Titolo: Effettuare copie di un Server

Salve a tutti
Avrei bisogno di un aiuto enorme....
Vi spiego il mio problema...
Ho un Server con due HD Sata configurato cosě
SDA1-Raid1-10Gb-/
SDB1-(immagine di SDA1 tramite Raid)
SDA2-Raid1-4Gb-Swap
SDB2-(immagine di SDA2 tramite Raid)
SDA3-Raid1-spazio rimanente./other
SDB3-(immagine di SDA3 tramite Raid)
quindi ottengo:
MD1 /
MD2 Swap
MD3 /other
Ho creato questo sistema perchč teoricamente riproponibile anche su macchine 
con un solo hard disk o con piů di due hd.
sulla macchina ho installato il sistema base+LAMP+asterisk+altri componenti
ho configurato il tutto, ho creato dei sistemi personalizzati di 
configurazione tramite LAMP
ho configurato moltissimi moduli, ho creato dei file di script per una 
configurazione tramite
un programma in visual basic che ho sviluppato appositamente per configurare 
i parametri della macchina
Il mio problema a questo punto č:
COME POSSO FARE DELLE COPIE "AL VOLO" DI TUTTO IL SISTEMA INSTALLATO
SU ALTRE MACCHINE ANCHE DIVERSE MA CHE PRESENTANO LO STESSO
SISTEMADI COSTRUZIONE DELLE PARTIZIONI?
ho provato con PartImage facendomi la copia SDA1, ho ricreato il sistema su 
un altra macchina
(partizioni raid uguali) e ripristinato tramite partimage la copia fatta su 
SDA1 e SDB1
reinstallato grub e fatto partire la macchina
ottengo questo errore:
switchroot: mount failed; No such file or directory
Kernel panic - not syncing: Attempted to kill init!
Dove sbaglio?
Qualche suggerimento su sistemi alternativi per effettuare una copia di 
quello che ho descritto?
Grazie
Andrea

 SISTEMADI COSTRUZIONE DELLE PARTIZIONI?
Ciao!
Io, con questo sistema, ho fatto senza problemi parecchie copie di
parecchi Servers (non domandare il perche', che NON LO VUOI sapere):
1) La macchina "da copiare" (A) e' accesa e funzionante
2) La macchina "sulla quale copiare" (B) e' accesa e ci gira una
distribuzione Live (Knoppix, Ubuntu, altro) che abbia SSH e RSync
3) Sulla macchina B crei le stesse partizioni della macchina A e le monti
4) Per ogni partizione (ad esclusione della /), scrivi (sulla macchina B):
  rsync -aSHxv <macchinaA>:/mountpoint/ /mnt/mountpoint/
5) Sulla macchina A scrivi:
  mount --bind / /somemountpoint/
6) Sulla macchina B scrivi:
  rsync -aSHxv <macchinaA>:/somemountpoint/ /mnt/rootmountpoint/
7) In /mnt/rootmountpoint/etc (macchina B) cambi gli IP e le altre
informazioni rilevanti (occhio eventualmente se usi UDEV!!!)
8) Sulla macchina B smonti tutte le partizioni a parte quella dove hai
montato / e poi DENTRO QUELLA PARTIZIONE, monti (ai posti giusti!) tutte
le altre
9) Installi GRUB:
grub-install --no-floppy --root-directory=/mnt/mountpoint /dev/hda (o
/dev/sda o cos'e')
10) Smonti tutte le partizioni e lasci partire il sistema!
Buon divertimento!
Ciao
Luca Bertoncello
(
luca...@lucabert.de
)
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 ha scritto nel messaggio 
news:gl4c6i$75f$1...@news.newsland.it...

Andrea Monni PerSonalizzAndo Sede Legale: Via Limberti, 9/11   59100 Prato 
(PO) ( 0574/633692 Ę 0574/630025 * 
a.m...@aldestore.it
 AVVISO DI 
RISERVATEZZA< 

 Dove sbaglio?
1) la tabella delle partizioni, e l'mbr si copiano con 'sfdisk'. Qui,
da qualche parte, trovi le istruzioni: 
http://www.sysresccd.org/Main_Page
2) mi pare di capire che tu copi /dev/sda dall'origine, su sda e sdb
nel server di destinazione. Ma cosi' non crei due device con lo stesso
UUID e mandi in casino il RAID?

 mount /mnt/altrapartizione /mnt/root/altrapartizione
Si!


 ha scritto nel messaggio 
news:gl4ds7$fo7$1...@news.newsland.it...


 (cioč che sia possibile effettuare da chiavetta usb o DVD)
Scusa, mi rendo conto a questo punto che forse ho fraintesto il tuo
messaggio...
COSA vuoi fare ESATTAMENTE?
Prendere un PC, installarlo a modino e replicarlo X-mila volte?
Oppure, prendere un PC, farne una copia, smaialarlo per bene e, quando si
inchioda di brutto, riprendere l'immagine dalla copia?
Perche', se e' il secondo caso, quello che ti serve e' un programma tipo
Ghost o CloneZilla...



Andrea Monni PerSonalizzAndo Sede Legale: Via Limberti, 9/11   59100 Prato 
(PO) ( 0574/633692 Ê 0574/630025 * 
a.m...@aldestore.it
 AVVISO DI 
RISERVATEZZA< 

 Prendere un PC, installarlo a modino e replicarlo X-mila volte
Ovviamente puoi anche usare Ghost o CloneZilla per quello...
Pero' NON DEVI ASSOLUTAMENTE dimenticare che alcune cose NON possono
essere identiche...
Passi per l'IP (se hai un Server DHCP sei a posto).
Gia' per l'hostname dovresti scriverti un qualche scriptino che lo imposti
a seconda dell'IP o di qualcos'altro altrimenti ti trovi millemila PC con
lo stesso nome.
E non dimentichiamoci di UDEV, che rischia di crearti un po' di casini, se
l'Hardware non e' proprio identico.
L'ideale sarebbe farsi un'installazione "non propriamente finita", con un
paio di script che, al primo avvio mettono a posto le cose (HostName,
UDEV, eventualmente IP, chiavi SSH, etc) e poi si cancellano.
A quel punto, PRIMA di lasciar girare quegli script sulla prima macchina
(magari usi una macchina virtuale che hai piu' possibilita' di smaialare a
piacere e ripartire da un punto dato in breve tempo), crei un'immagine con
CloneZilla e la metti su DVD.
Poi, sempre con CloneZilla, installi quell'immagine sui millemila PC, li
accendi e lasci che gli script facciano il loro dovere...
La procedura che ti avevo scritto era piuttosto manuale e pensata per una
replicazione di una macchina UNA volta, non per questi casi...


il fattore script era quello a cui avevo pensato
solo no so' se ti intendi di asterisk............
scarica i pacchetti, compilali, qualche errore scappa sempre
ricompilali, configura tutti i moduli
installa e configura server lamp
configura mezzo mondo per ilstallare freepbx
configura altro mezzo mondo per ftp, ssh, tunnel vari
backdoor ingressi strani e affini
ricompila altro mezzo mondo
e il gioco è fatto
cavolo!
non saprei fare uno script "COSI' TANTO" complesso
è veramente troppo e ci sono troppe variabili in gioco
ho degli script per configurare IP, hostname, ssh, chiavi
e altro... ma per il resto....
mi sarebbe piaciuto poter "pacchettizzare" in qualche modo
tutto cio' che ho installato e configurato sulla mia
macchina e successivamente installate un sistema base
e poi aggiungere il repo mio e dare un comando
tipo apt-get install ILMIOPACCHETTOGIACONFIGURATO
(o yum install)
.....


Io ho spesso la nacessità di effettuare installazioni multiple di
sistemi tutti uguali (però anche dal punto di vista hw).
Di solito procedo in questo modo:
1 - Installo e configuro tutto in modo quanto più possibile definitivo
sul primo server con i dischi in raid 1.
2 - Spengo la macchina "campione"
3 - tolgo il disco/dischi di mirror e li metto su uno dei cloni in
posizione "master" da cui ho precentemente sfilato i dischi di mirror.
4 - accendo il clone
5 - re-inserisco i dischi di mirror del clone e faccio partire la
replica dal disco master al mirror.
6 - i dischi master che avevo tolto dal clone li inserisco come mirror
sulla macchina campione e faccio partire la replica.
A replica ultimata mi trovo già con due macchine uguali e due coppie
di raid perfettamente consistenti.
A questo punto se ripeto l'operazione avrò 4 macchine identiche in
pochi minuti e così via esponenzialmente.
Con questo sistema ho installato e messo in esercizio 16 sistemi in un
giorno. (tutti hp blade sistem ognuno con due dischi in mirror e
controller raid in hw)
Certo il Tuo caso è un pelino più complicato perchè, se non ho capito
male, i Tuoi "cloni" avranno hw differente, ma il concetto di base
credo sia comunque applicabile no? La bellezza di avere un controller
raid in hw è che il Mio giochetto lo posso applicare a prescindere dal
sistema operativo che devo metterci sopra, l'ho fatto sia con findus
che con Linux e non ho mai avuto problemi.
P.S.
Per la partizione di swap ti consiglio di toglierla dal raid e di far
montare al sistema entrambe le partizione come swap.
In questo modo il kernel utilizzerà un algoritmo simile allo striping,
ben più efficiente del mirroring per lo swap.

 Prendere un PC, installarlo a modino e replicarlo X-mila volte
quindi userai un sistema tipo partimage o clonezilla (*), ricopierai
la tabella delle partizioni e l'mbr con sfdisk, e (come ti ha scritto
Luca) farai attenzione a tutti i parametri di personalizzazione.
(*) ghost direi proprio di no, perché è a pagamento, e poi immagino
che sia limitato all'uso di ext3... sempre che non sia ancora fermo a
ext2 :)

 ben più efficiente del mirroring per lo swap.
Anche io ho fatto così.... per sfruttare lo striping del kernel sulle
due partizioni di swap (bisogna dichiarare in fstab la stessa
priorità: pri=1)
Se però ti serve altissima affidabilità e il downtime deve essere
vicino a zero, qualcuno mi ha fatto notare che potrebbe non andar
bene, in quanto la mancanza di una partizione di swap potrebbe mandare
in crash il sistema.
Quindi bisogna vedere qual è l'obiettivo. Nel mio caso andava bene
preservare i dati, mentre il downtime non importa per nulla.

 in crash il sistema.
Questo è vero, ma è anche vero che il sistema crasha solo se, nel
momento in cui si rompe il disco con una delle "stripe" dello swap, ha
bisogno di "leggere" dalla swap. Ma se ha bisogno di leggere dalla
swap significa che la sta usando e se la sta usando significa che ha
finito la ram e se ha finito la ram significa che almeno una mezz'ora
ora prima hai iniziato ad essere tempestato di telefonate del tipo:
"AIUTO l'applicazione $XYZ  è diventata lentissimaaaaaa" e Tu sei già
in shell sul sistema perchè i tuoi sistemi di monitoring ti avevano
già avvisato che l'applicazione $xyz era diventata lenta ben molto
tempo prima che le "carmelitane scalze isteriche" che l'azienda
definisce Project Manager iniziassero ad aggrappartisi ai marroni, e
quindi se ci fosse un disco prossimo alla rottura te ne saresti
sicuramente accorto in tempo. Oppure il disco si rompe mentre il
sistema non ha per nulla bisogno della swap e quindi per lungo tempo
non succede nulla di negativo e Tu hai tranquillamente il tempo di
cambiare il discho perchè nel frattempo lo smart monitor ti ha mandata
una mail per avvisarti della prossima dipartita del suo pupillo.



Purtroppo non sempre lo smart monitor è affidabile.
Ho visto dischi morire senza che il monitor facesse una piega e dischi
che lui dava per spacciati (usati su pc client di poca importanza)
continuare a funzionare imperterriti per anni.

 continuare a funzionare imperterriti per anni.
Esistono statistiche fatte da google, sui dischi, che sono molto
interessanti.
Non mi ricordo però i riferimenti.
-- 
A: Because we read from top to bottom, left to right.
Q: Why should i start my reply below the quoted text?

 continuare a funzionare imperterriti per anni.
Ciò che dici è verissimo,anche perché un sistema di monitoring che sia
in grado di "predire" una rottura con la massima affidabilità non
esiste e non credo esisterà mai, Io però se smartmon si lamenta, sui
miei server di produzione il disco lo cambio, per metterlo in seguito
a farcire lo storage privato dei "..azzi nostri" dove probabilmente
continuerà a funzionare per anni prima di rompersi davvero questo però
credo sia anche dovuto al fatto che la meccanica in questione sia
moooooolto meno stressata su un "pc client di poca importanza" che sul
server di produzione. Anche perchè se non lo cambio e quello poi si
rompe come faccio a sbeffeggiare i consulenti di
$Nota_società_con_nome_di_due_lettere per il fatto che il mio
scriptino con smartmon funziona meglio della loro
$costosa_applicazione_proprietaria ?

 (o yum install)
Ecco, qui la cosa diventa piu' complessa.
Ma non ha PROPRIO NIENTE a che fare con la tua domanda iniziale... :)


 ora prima
ok ho usato il condizionale: "potrebbe".
comunque, visto che la usa in stripe, basta che usi anche un
pochettino di swap le usa immediatamente entrambe.... ma francamente
non ho nemmeno idea di come potrebbe reagire il sistema. Va in panic,
oppure hai tutto il tempo per poter dare uno "swapoff" ?

ok, ho capito
vorrei farti un'altra domandona
hai mai provato ad installa "trixbox" su un pc?
(distro basata su centos con asterisk precompilato e altre cosucce,
compreso lamp e tabelle mysql con già dentro dei dati)
se volessi fare una cosa simile?
anche la mia distro si basa su centos (la migliore per interagire con 
asterisk...)
se volessi creare un installazione automatica da cd che mi crea il mio raid
e mi installa i miei pacchetti già preconfigurati con tutti i dati in mysql
gia' inseriti, etc....
sai come si potrebbe fare?
scusa se sto' abusando del tuo aiuto....
grazie 1000 per tutto
ciao
andrea 

ok, ho capito
vorrei fare un'altra domandona
avete mai provato ad installa "trixbox" su un pc?
(distro basata su centos con asterisk precompilato e altre cosucce,
compreso lamp e tabelle mysql con già dentro dei dati)
se volessi fare una cosa simile?
anche la mia distro si basa su centos (la migliore per interagire con 
asterisk...)
se volessi creare un installazione automatica da cd che mi crea il mio raid
e mi installa i miei pacchetti già preconfigurati con tutti i dati in mysql
gia' inseriti, etc....
come si potrebbe fare?


 oppure hai tutto il tempo per poter dare uno "swapoff" ?
Hai ragione al 100% ma vedi quì dipende molto da come hai effettuato
il tuning del sistema una volta in produzione, Io ad esempio su alcuni
sistemi di produzione normalmente sottoposti ad un carico medio
piuttosto elevato, se sono ben carrozzati a livello di ram, sono
solito impostare i parametri del kernel relativi alla virtual memory
in modo tale che usino la swap solo se indispensabile, questo perchè i
sistemi sono sottoposti ad un tale carico medio (db da 5/6k insert al
secondo, AS da 3/400 hit/s, o applicativi vari che stressano cpu e
ram) che se arrivano ad usare la swap le prestazioni calano così tanto
da mandare in crisi tutta la catena in cui il sistema è inserito,
quindi sono costretto ad intervenire molto prima che il sistema inizi
a "swappare", pensa che in alcuni casi per evitare disservizi ho
addirittura disattivato la swap poichè, dato il carico del sistema,
preferisco che vada in crash (in quel caso una sorta di watchdog
artigianale provvede a resettare) piuttosto che rimanga vivo per
rispondere come una tartaruga.
Quindi alla fine per rispondere alla tua domanda, Sì limitando alle
condizioni di estrema ratio l'utilizzo della swap in caso di rottura
di un disco ho tranquillamente il tempo di fare swap-off, e nel caso
di esaurimento di ram e di swap il sistema non panica, ma rimane in
hang (blocco totale).
Comunque il mio suggerimento di NON mettere la swap in raid 1 era solo
riferito al caso specifico, in quanto il raid in questione è un raid
software che andrebbe quindi a gravare inutilmente sulla cpu di
sistema, nel caso in cui io abbia un controller raid HW metterei
tranquillamente in mirror anche la swap.
Ciao Ciao

 sai come si potrebbe fare?
Si potrebbe cominciare a bestemmiare in austroungarico... :)
Scherzi a parte, e' una cosa piuttosto complicata.
Qualche anno fa, qui a Dresden, nell'ambito del LinuxInfoTag, ci fu una
conferenza di Christian Perle dal titolo "Knoppix Remastering" che
trattava il problema di personalizzarsi Knoppix con altri programmi e roba
varia.
Le slides (in tedesco) le trovi all'URL:
http://www.linux-info-tag.de/7/image/w_remaster.pdf
Immagino che, con le dovute cautele, la cosa si possa applicare a
qualunque altra distribuzione e poi fare un installer dovrebbe essere
abbastanza facile.
Pero', ripeto, e' una cosa piuttosto complessa. E non ho esperienza in
merito.
Altrimenti rimane sempre la via di CloneZilla, che ho detto prima! :)


 sai come si potrebbe fare?
scusa, ma non è la stessa identica domanda di prima?
Se vuoi possiamo buttare altre risposte nel calderone:
- esiste udpcast per eseguire installazioni multiple contemporanee ed
è velocissimo (lavora in broadcast ethernet, e non broadcast ip)
- esiste netcat, per eseguire sempre installazione attraverso la rete.
- esiste anche kickstart per i sistemi redhat-like.
- esiste anche systemimager (che è bello complicato).

 lavora in broadcast ethernet, e non broadcast ip
Rotfl.
Chissà perchè quel curioso suffisso nel nome, "udp".
Ah, è multicast, non broadcast.
Ah, avere una vaga idea di quel che ci si accinge a scrivere non è
una cattiva idea, di tanto in tanto.

 Ah, Ã¨ multicast, non broadcast.
di nuovo. non rompere i coglioni. Questa è una svista, che tu ci
voglia credere o meno.

 di nuovo. non rompere i coglioni. 
Hic manebimus optime.
Calpesta il newsreader e vattene, come hai solennemente dichiarato
l'ultima volta in cui hai sbroccato con tanto di bestemmione, se credi.

 di nuovo. non rompere i coglioni. 
Hic manebimus optime.



No. Tu scrivi di cose che non conosci e il presenzialista sei tu.
Questo software funziona sia un multicast, sia un broadcast (con tanto
di opzione per scegliere da riga di comando).
Tu ieri scrivevi: si chiama multicast e non broadcast.
E adesso finiscila di fare stalking. Fallo con le ragazze lo stalking.


per maggior chiarezza:
A parte il fatto che udpcast - a scelta - lavora sia in broadcast, sia
in multicast, esiste il multicasting che lavora su Layer 2, e esiste
quello che lavora su layer 3.
e mo' non mi fare più stalking perché mi sono rotto il cazzo.

 E adesso finiscila di fare stalking. Fallo con le ragazze lo stalking.
Non sai neanche cosa significhi stalking, fessacchiotto.

 Offro io!
A me che non bestemmio, mi offri solo il lagavulin ?

 e mo' non mi fare più stalking perché mi sono rotto il cazzo.
Ribadisco:
1 - non sai cosa significhi davvero stalking;
2 - se ti sei rotto il cazzo, sono solo problemi tuoi: io, al più, mi diverto.

 A me che non bestemmio, mi offri solo il lagavulin ?
Distillers edition, distilled 1991, bottled 2007.
Per te e per me acqua di sorgente scozzese a parte; il Tavor è solo
per i cazzari iracondi.


cazzo stiamo parlando di uno stalker segaiolo. E' chiaro che devo
perdere la pazienza.
Se guardi tutti i suoi messaggi dell'ultimo mese, scoprirai che non ha
risposto a nessuno oltre a me. Questo elemento, vive solo per me.
Se smettessi di scrivere, e come se gli staccassi il tubicino con
l'alimentazione.
Si spulcia tutti i miei messaggi e appena trovata una virgola fuori
posto, va immediatamente in bagno a farsi una sega, e dopo messaggio:
"Rotfl....... rotfl... " con eventuale annesso di minchiate varie
inanellate.

 2 - se ti sei rotto il cazzo, sono solo problemi tuoi: io, al più, mi diverto.
io, in fondo in fondo, non mi sono rotto tanto il cazzo, pero' tu ti
fai le seghe con queste cose. E non dirmi di no.
Ti ho già detto che il software funziona anche in broadcast e questo
dimostra quanto le tue precisazioni siano, oltre che assolutamente
inutili, anche sbagliate.

 per i cazzari iracondi.
cazzaro de che?
sono io che ho detto che non va in broadcast?

 Non sai neanche cosa significhi stalking, fessacchiotto.
http://www.mymovies.it/dizionario/recensione.asp?id=23875
Guardatelo. Sarà l'unica cosa intelligente che avrai fatto in vita
tua: guardare un film, del quale non potrai capire un cazzo di nulla.

 ca
L'hai capito che la tua ficcante notazione "ethernet versus IP" era la
tua solita puttanata?

 io


 che


 Gua
http://en.wikipedia.org/wiki/Stalking


L'hai capito che la tua ennesima e inutile precisazione "broadcast"
vs. "multicast" era la tua solita puttanata?


E allora?
It has been applied to the obsessive following, observing, or
contacting of another person, or the obsessive attempt to engage in
any of these activities. This includes following the person...
Guardati il film piuttosto. Normalmente ne vale la pena, ma
normalmente non per uno come te, che è probabilmente ai livelli di
"signore degli anelli" o "guerre stellari".

 wrote:

L'hai capito che la tua precisazione "multicast" vs. "broadcast" era
la tua solita inutile precisazione, nonché puttanata?

 wrote:

L'hai capito che la tua precisazione "multicast" vs. "broadcast" era
la tua solita inutile precisazione, nonché grande puttanata?

 wrote:

L'hai capito che la tua inutile precisazione "multicast" vs.


 la tua solita inutile precisazione, nonché puttanata?
AAARGG!
sento il rumore di unghie sullo specchio.
Fastidio!
-- 
A: Because we read from top to bottom, left to right.
Q: Why should i start my reply below the quoted text?

 "multicast" era la tua solita puttanata?
Il multicast è la modalità di default.
Il broadcast si utilizza solo per dispositivi ethernet che non
supportino il multicast, ovvero praticamente nessuno, al giorno
d'oggi.
Il cuore del mio intervento, ma sei evidentemente troppo scemo per capirlo, era 
la tua puttanata "(lavora in broadcast ethernet, e non broadcast ip)".
Ora puoi andare, scemo livoroso.
f/up

 Fastidio!
Tu sei quello delle pacche sulle spalle, la tua testimonianza conta
poco.
Comunque sia, ti rispondo ugualmente:
/*
* quote_wiplash:
* Ah, è multicast, non broadcast.
*/

 activities. This includes following the person...
E allora c'è quell'"obsessive", sai, tanto per cominciare.
E il quoting selettivo non è granchè efficace, da queste parti.
La tua, piuttosto, è un'evidente sindrome da coazione a ripetere.
Ripetere figure di merda, nella fattispecie.
Vai pure, caro.
f/up

Il Thu, 22 Jan 2009 04:17:41 -0800, MaxAdamo scrisse:

http://udpcast.linux.lu/
UDPcast is a file transfer tool that can send data simultaneously to 
many destinations on a LAN. This can for instance be used to install 
entire classrooms of PC's at once. The advantage of UDPcast over 
using other methods (nfs, ftp, whatever) is that UDPcast uses Ethernet's
 multicast abilities: it won't take longer to install 15 machines than 
it would to install just 2.
Se credi, ti spiego gli enormi vantaggi che può comportare l'utilizzo
del multicast rispetto al broadcast, anche se temo che tu sia troppo
ignorante e scemo per comprendere.
f/up

 Il broadcast si utilizza solo per dispositivi ethernet che....
chi prendere per il culo? Adesso hai letto la "man page"?
Sei qui sempre per cercare sempre di dimostrare che sei dio, e invece
viene fuori che sei un mortale, che dice puttanate come qualsiasi
altro mortale.
Il punto era semplicemente questo.

 chi prendere per il culo?
Io no prendere.
In mia lingua "io prendo per il culo".
E sì, prendo per il culo proprio te.
=======================================================
:> lavora in broadcast ethernet, e non broadcast ip
:
:Rotfl.
:Chissà perchè quel curioso suffisso nel nome, "udp".
=======================================================
Su, lamer, sparisci.
f/up

 inanellate.
Tradotto: "risate per le tue cazzate e correzione degli errori"
-- 
Flavio Visentin
Scientists have finally discovered what's wrong with the female brain:
On the left side, there is nothing right, and on the right side, there
is nothing left.