Newsgroup: it.comp.os.linux.iniziare
Titolo: bindare directory utente

aggiungendo in /etc/fstab
 
/mnt/storage/USER /home/USER none bind
 
Ci potrebbero essere problemi?
 
Inoltre se può essere utile
 
$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 20.04.4 LTS
Release:	20.04
Codename:	focal


Quale sarebbe l'utilità?
O lo scopo?
 
Regola numero uno dalla notte dei tempi, quando si chiede:
 
1) voglio ottenere questo obiettivo
 
2) come posso fare?
 
3) posso ottenerlo con questa soluzione?
 
 
Pertire dall'ultimo punto non porta risposte di solito, per
il resto qui trovi della roba cercando fstab nella pagina:
 
https://unix.stackexchange.com/questions/198590/what-is-a-bind-mount
 

 O lo scopo?
 
Spostare la home su altra partizione, così se devo formattare quella di 
linux la home non la perdo.
Naturalmente bisogna vedere come interfacciarsi con /mnt/storage/USER.
Creando un symlink o un binding?
C'è chi dice che il binding offra un accesso è più rapido, è la artella 
viene vista davvero come una cartella (anche facendo un readlink -e ~).
Tuttavia dato che si tratta di una directory utente, ci potrebbero 
essere problemi (soprattutto all'avvio del sistema)?
Mi pare di no... mi pare...

 linux la home non la perdo.
 
Ma scusa, tu installi un PC, con Linux,
senza avere /home su partizione, o volume,
separato?
 
C'e` un documento, da qualche parte, su
come possa essere conveniente avere un
partizionamento (o volumi) del sistema.
 
Per esempio, alcuni consigliano /usr,
/var e /var/tmp su volumi separati.
 
bye,
 
-- 
 
piergiorgio

 linux la home non la perdo.
 
Ecco ma allora il bind non serve: se leggi il link che ho messo
al mesasggio precedente capirai a cosa serve il bind, ci sono
anche casi d'esempio.
 
No, se devi spostare la /home in una partizione dedicata, basta
che fai la copia, modifichi fstab scopiazzando dalla riga del
mount della root "/" e stop.
 
La partizione è tecnicamente un "file speciale", del tipo "/dev/sda5".
Invece il bind lo utilizzi per montare una directory attraverso il
il cosiddetto "loop device" cioè un file dispositivo fittizio dietro
il quale c'è semplicemente una cartella per capirci.
 
Nel tuo caso visto che la /home non sarà più sulla stessa partizione
della root, istruiurai fstab per montare la partizione sulla directory
omonima, appunto /home.
 
ricapitolando:
 
1. crei partizione con fdisk o simili se non la hai già, occhio se
   lavori sullo stesso disco dovrai prima restringere il filesystem
   poi la partiizione root, creare la partizione /home e infine
   riallargare la partizione root per occupare lo spazio non allocato.
 
2. fai la copia con "cp -a" o "rsync -a" di /home/ su /mnt/partnuova
 
3. modifichi fstab aggiungendo la nuova partizione /dev/sda5 e come
   punto di montaggio la dir /home ovviamente.
 
4. al prossimo avvio del SO dovresti ritrovarti con la /home  residente
   in partizione /dev/sda5.

 separato?
 
No.
Infatti fino adesso ho usato i symlink che puntano ai file/directory 
sulle altre partizioni.
Però adesso vorrei usare i binding per redirigere tutto da un punto 
centrale: /etc/fstab
 
/mnt/storage/user /home/user  none bind
/mnt/repositories /srv/repositories none bind
/mnt/storage/var /usr/var none bind


non guasta un:
 
cat /etc/fstab
 
e un
 
lsblk
 
Perché in fstab comunque devi prima montare le partizioni
immagino, altrimenti fai il bind del nulla no?
 
esempio
 
/dev/sdb3  /mnt/storage  ext4  defaults  1  2
 
dopodiché aggiungerai l'istruzione di bind che lega
 
/mnt/storage/qualcosa ---> /qualcos/altro

 /mnt/storage/var /usr/var none bind
 
Anche qui, niente bind.
Stando attenti a /usr/var (che da me non
esiste neanche, a cosa serve?).
 
bye,
 
-- 
 
piergiorgio

     riallargare la partizione root per occupare lo spazio non allocato.
 
????
bohhh
 
Riassumendo, io due cose sole farei:
  - restringere / (ad es. di 1 giga)
  - creare /home (della dimensione di 1 giga).
 

 /var e /var/tmp su volumi separati.
 
/var/tmp però fa sempre parte di /var
 
Sub-binding?
o_O

Il 26/03/22 16:07, Joe ha scritto:

Esattamente.

 /mnt/storage /home ... ...
 
Evitare il binding?
OK!!!
 

 /var/tmp però fa sempre parte di /var
 
No, cosi` come /tmp non fa parte di /,
ma a volte e` solo un ramdisk.
 
Sono due mount, in /etc/fstab, consecutivi.
Tipo:
 
/dev/mapper/dm-X /var ...
/dev/mapper/dm-Y /var/tmp ...
 
Ovviamente, non e` sempre conveniente,
dipende da vari fattori, ma e` una scelta
che qualcuno consiglia.
 
Altrettanto, uno puo` anche avere tutto /var
in / senza ulteriori mount point.
 
Era solo per dire che, a volte, si puo` anche
considerare un partizionamento fine.
 
Nel caso piu` generico, lo standard e` avere
/home, /boot e /tmp separati.
 
bye,
 
-- 
 
piergiorgio

 Evitare il binding?
 
Diciamo che non e` necessario, se le cose
sono fatte in maniera semplice e facile.
 
Se poi uno vuole fare esperimenti con bind,
si puo` anche discutere, ma non credo sia,
nel tuo caso, la prima soluzione.
 
bye,
 
-- 
 
piergiorgio

 sono fatte in maniera semplice e facile.
 
OK, bene, ma come avevo già detto "Ma per adesso non me la sento di 
trafficare..."

 /dev/mapper/dm-Y /var/tmp ...
 
Io cmq non ho nulla di tutto questo.
 

 Io cmq non ho nulla di tutto questo.
 
Questo era chiaro.
 
L'esempio era per dire come le cose
vengano "raccomandate".
 
bye,
 
-- 
 
piergiorgio

 trafficare..."
 
Ma scusa, non te la senti di trafficare,
e fare il binding come lo chiami?
 
Joe ti ha spiegato per filo e per segno
la procedura corretta, che non e` trafficare
con bind.
 
bye,
 
-- 
 
piergiorgio

 e fare il binding come lo chiami?
 
Lasciamo stare.
Durante il refactoring delle partizioni possono venire fuori cluster 
danneggiati, saltare la corrente ecc.
Devo prima trovare un po' di tempo tranquillo, terminare qualche lavoro 
aperto, aggiornare i backup, ecc.

 aperto, aggiornare i backup, ecc.
 
Nel frattempo traffichi con bind mount...
 
Prenditi il tempo e fai le cose per bene.
 
bye,
 
-- 
 
piergiorgio

 Nel frattempo traffichi con bind mount...
 
Che non è la stessa cosa di come trafficare con volumi, partizioni, 
formattazioni...

 formattazioni...
 
Se vieni qui a chiedere, e` esattamente
la stessa cosa.
 
Senza contare che avevi gia` la soluzione
con il link simbolico che funzionava, mi
pare di aver capito.
O non era cosi`?
 
bye,
 
-- 
 
piergiorgio

 abbia creato e stia cercando di risolvere.
 
Come sopra.
 

 Per ora la mia home è su /mnt/storage/home/USER
 
OK, quindi adesso sai cosa devi fare,
senza impelagarsi con bind, link od
altri ammennicoli.
 
bye,
 
-- 
 
piergiorgio


sì basta capirsi...
Se lavori con tool com fdisk devi prima restringere il filesystem,
e solo dopo restringere la partizione lasciandola un po' più abbondante.
Se lavori con altri tool tipo parted o gparted o altri o altri ancora
allora probabilmente ti nascondono il passaggio: tu indichi la riduzione
della partizione e loro automaticamente riducono anche il contenuto,
cioè il filesystem che contiene i dati.
 
Occhio, sembre backup dati su disco terzo prima di smanettare se
parliamo di dati importanti.
 
Il tutto sempre che l'obiettivo sia quello di spostare la /home in
partizione dedicata.
Dico questo perché da quello che hai postato nell'altro messaggio,
l'obiettivo sembrerebbe un altro:
 
- ho un disco o partizione o più dischi e partizioni contenenti
  un tot di directories
 
- voglio montare queste dirs in punti comodi del mio file system
  principale (scritto staccato, sopra era scritto attaccato)
 
esempio:
 
- ho la root in /dev/sda4
- poi ho della roba in /dev/sdb1, in /dev/sdb2 e in /dev/sdc1
- voglio avere i seguenti punti di mount
 
/dev/sdb1/album-bn montato in /home/pippo/immagini-monocromo
 
/dev/sdb2/articoli    montato in /home/pippo/documenti/articoli
 
/dev/sdc1/musica/registrazioni  montato in /home/pippo/multimedia/rec
 
(occhio che è formalmente sbagliato serve solo per capirsi)
 
Se sdb e sdc sono dischi fissi, interni allora potrebbe avere un
senso una soluzione tipo LVM, prendila con le pinze perché non la
conosco bene neanche io ma per capirci far vedere al sistema sdb
e sdc come un unico volume o forse meglio 2 volumi separati e crearvi
poi dei volumi logici da usare come partizioni, però sfruttando la
flessibilità di LVM senza problemi di restringimento o espansione
delle stesse.
Credo che sia la soluzione più azzeccata. Non unirei i dischi
come unico volume (situazione simile a raid0 perché se ti muore
uno dei due dischi, avendo i dati sparsi un po' su uno e un po'
su un altro finisce che perdi tutto, ovviamente poi ripristini se hai
un backup ma va be')
 
Il montaggio con bind può anche avere un senso credo, salterà
fuori un fstab un po' complicato ma potrebbe funzionare, immagino che
si debba prima configurare il montaggio delle partizioni reali
 
/dev/sdb1 /mnt/sdb1
/dev/sdb2 /mnt/sdb2
/dev/sdc1 /mnt/sdc1
 
e poi il montaggio in loop attraverso bind
 
/mnt/sdb1/album-bn /home/pippo/immagini-monocromo
/mnt/sdb2/articoli /home/pippo/documenti/articoli
/mnt/sdc1/musica/registrazioni /home/pippo/multimedia/rec
 
I dettagli in fstab vanno ovviamente specificati, ma tanto per dare
un'idea.
 
Non credo che ci sia un modo più furbo per montare le directories
originarie sui punti di mount desiderati... ma ammetto di essere
abbastanza ignorante sulla questione, così a naso direi che se
/dev/sdb1 non è già montato da qualche parte e il suo contenuto
non diventa parte del file system del sistema, questo non potrà
vedere una directory contenuta in sb1.
 
Il link che avevo messo dove spiegava un po' bene anche gli effetti
collaterali del bind in sostituzione al link, potrebbe essere il caso
di guardarlo per bene, soprattutto se il contesto è lavorativo/serio.

 Ma e` /home, non /home/user...
 
OK OK OK

 consigliavano (non so adesso) di reinstallare invece di aggiornare.
 
L'unico re-install che io ho fatto e` stato
quando si e` passati da 32bit a 64bit.
A parte quel caso, sempre aggiornamenti
ovvero upgrade.
 
bye,
 
-- 
 
piergiorgio