LINUX.ORG.RU

Дублирование папки home

 


0

1

Всем привет! При установке Arch решил вручную разметить диск, из 1Тб выделил под root 70 Гб памяти, для boot выделил 1Гб, остальное выделил для home. Что-то пошло не так, и теперь home находится и в корне, и на отдельном разделе. Размер папок совпадает. Есть ли возможность убрать эту папку из root, оставив только на отдельном разделе?

Ответ на: комментарий от anonymous
TARGET                  SOURCE     FSTYPE      OPTIONS
/                       /dev/sda2  btrfs       rw,relatime,ssd,discard=async,space_cache=v2,subvolid=5,subvol=
├─/proc                 proc       proc        rw,nosuid,nodev,noexec,relatime
│ └─/proc/sys/fs/binfmt_misc
│                       systemd-1  autofs      rw,relatime,fd=36,pgrp=1,timeout=0,minproto=5,maxproto=5,direct
├─/sys                  sys        sysfs       rw,nosuid,nodev,noexec,relatime
│ ├─/sys/firmware/efi/efivars
│ │                     efivarfs   efivarfs    rw,nosuid,nodev,noexec,relatime
│ ├─/sys/kernel/security
│ │                     securityfs securityfs  rw,nosuid,nodev,noexec,relatime
│ ├─/sys/fs/cgroup      cgroup2    cgroup2     rw,nosuid,nodev,noexec,relatime,nsdelegate,memory_recursiveprot
│ ├─/sys/fs/pstore      pstore     pstore      rw,nosuid,nodev,noexec,relatime
│ ├─/sys/fs/bpf         bpf        bpf         rw,nosuid,nodev,noexec,relatime,mode=700
│ ├─/sys/kernel/debug   debugfs    debugfs     rw,nosuid,nodev,noexec,relatime
│ ├─/sys/kernel/tracing tracefs    tracefs     rw,nosuid,nodev,noexec,relatime
│ ├─/sys/kernel/config  configfs   configfs    rw,nosuid,nodev,noexec,relatime
│ └─/sys/fs/fuse/connections
│                       fusectl    fusectl     rw,nosuid,nodev,noexec,relatime
├─/dev                  dev        devtmpfs    rw,nosuid,relatime,size=8110688k,nr_inodes=2027672,mode=755,ino
│ ├─/dev/shm            tmpfs      tmpfs       rw,nosuid,nodev,inode64
│ ├─/dev/pts            devpts     devpts      rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000
│ ├─/dev/mqueue         mqueue     mqueue      rw,nosuid,nodev,noexec,relatime
│ └─/dev/hugepages      hugetlbfs  hugetlbfs   rw,nosuid,nodev,relatime,pagesize=2M
├─/run                  run        tmpfs       rw,nosuid,nodev,relatime,mode=755,inode64
│ └─/run/user/1000      tmpfs      tmpfs       rw,nosuid,nodev,relatime,size=1628452k,nr_inodes=407113,mode=70
│   └─/run/user/1000/doc
│                       portal     fuse.portal rw,nosuid,nodev,relatime,user_id=1000,group_id=984
├─/home                 /dev/sda4  btrfs       rw,relatime,ssd,discard=async,space_cache=v2,subvolid=5,subvol=
│ └─/home               /dev/sda4  btrfs       rw,relatime,ssd,discard=async,space_cache=v2,subvolid=5,subvol=
└─/tmp                  tmpfs      tmpfs       rw,nosuid,nodev,nr_inodes=1048576,inode64

yaroslvasil
() автор топика
Ответ на: комментарий от yaroslvasil

home находится и в корне, и на отдельном разделе

выглядит ok. в корне - это точка монтирования, сами разделы разные: корень - sda2, home - sda4.

непонятно, правда, почему /home два раза смонтирован. посмотри в /etc/fstab.

anonymous
()
Ответ на: комментарий от anonymous

из KDE всё выглядит так: https://ibb.co/m9Cp5CS в fstab такая информация, как будто бы всё так, как и должно быть:

<file system> <dir> <type> <options> <dump> <pass>
# /dev/sda2
UUID=5feeb917-a548-4968-b216-cf882dc7064c       /               btrfs           rw,relatime,ssd,discard=async,space_cache=v2,subvolid=5,subvol=/        0 0

# /dev/sda4
UUID=fc51c937-e8c1-4150-8417-cdab0992798d       /home           btrfs           rw,relatime,ssd,discard=async,space_cache=v2,subvolid=5,subvol=/        0 0
yaroslvasil
() автор топика
Ответ на: комментарий от anonymous

Я просто в восторге. Что у ОПа какой-то специальный талант (это ж надо постараться смонтировать раздел сам в себя), что у идиотов-комментаторов. Типичный ЛОР, главный ресурс по линуксу в рунете.

anonymous
()
Ответ на: комментарий от yaroslvasil

в fstab такая информация

тут всё в порядке. на картинке тоже всё прекрасно.

насчёт «двойного монтирования» я, кстати, не особо уверен. может быть так и должно быть. если не мешает, то можно не париться.

anonymous
()
Ответ на: комментарий от utanho

И в чём проблема?

У автора темы не было /home на отдельном разделе (файловой системе).

В результате в корне в точке монтирования созданного им /home есть домашние директории пользователей.

Сейчас поверх всей структуры /home на корневой файловой системе у него монтируется /dev/sda4.

Команда mount -o bind делает нерекурсивный bind указанной файловой системы в ещё одно место.

Поэтому в /tmp/root/home/ он увидит структуру директорий и файлов, находящуюся на корневой ФС, а не ту, что смонтирована с /dev/sda4 и если ему там ничего не надо - может её удалить.

Тебе нужно так всё объяснять?

kostik87 ★★★★★
()
Ответ на: комментарий от yaroslvasil

Тебя, конечно, штырит. Btrfs - это файловая система, где есть сабвольюмы, которые заменяют отдельные разделы. Те дополнительные разделы не нужны, достаточно ОДНОГО с Btrfs.

mount -o x-mount.mkdir,noatime,compress=zstd:3 /dev/sdaX /mnt/btrfs

cd /mnt/btrfs

# создаешь два сабвольюма
btrfs su cr @
btrfs su cr @home

А далее корень монтируешь с -o subvol=@, а /home - с -o subvol=@home.

Вчитывайся до полного просветления.

rtxtxtrx
()
Последнее исправление: rtxtxtrx (всего исправлений: 1)
Ответ на: комментарий от anonymous

Про какое двойное монтирование ты говоришь?

Сударь, вы никогда не выносили /home или /var/lib/{postgresql,mysql} на отдельные ФС позднее.

Можно сделать так:

mkfs.ext4 /dev/sdb1
mount /dev/sdb1 /home
mkdir /mnt/root
mount -o bind / /mnt/root
mv /mnt/root/home/* /home/

А можно так:

mkfs.ext4 /dev/sdb1
mkdir /tmp/home
mount /dev/sdb1 /tmp/home
mv /home/* /tmp/home/
umount /tmp/home
mount /dev/sdb1 /home
kostik87 ★★★★★
()
Ответ на: комментарий от rtxtxtrx

Ему ещё файлы нужно перенести или удалить с корневого волума.

А так, у него сейчас поверх /home на корне смонтирована отдельная ФС.

И /home на отдельной ФС - тоже неплохо, корень не переполнится как в случае subvolume.

Ну либо квоты выставлять нужно.

kostik87 ★★★★★
()
Ответ на: комментарий от kostik87

Про какое двойное монтирование ты говоришь?

вот тут:

├─/home                 /dev/sda4  btrfs       rw,relatime,ssd,discard=async,space_cache=v2,subvolid=5,subvol=
│ └─/home               /dev/sda4  btrfs       rw,relatime,ssd,discard=async,space_cache=v2,subvolid=5,subvol=

это ведь означает, что /dev/sda4 смонтирован в одно место два раза? или я ошибаюсь?

anonymous
()
Ответ на: комментарий от kostik87

Сударь, вы никогда не выносили /home или /var/lib/{postgresql,mysql} на отдельные ФС позднее.

Это ж не сервак, да и на сервере давно все в докере (докер, правда, еще настроить надо, чтобы он с btrfs работал, создавая сабвольюмы вместо костылей с overlayfs).

rtxtxtrx
()
Ответ на: комментарий от anonymous

Тут - хз, я findmnt не пользуюсь, лучше mount смотреть.

Что и как эта утилита показывает - без понятия, почему она так задвоила, возможно особенности того, что у него btrfs и в /home на корне что-то есть.

kostik87 ★★★★★
()
Ответ на: комментарий от rtxtxtrx

Используешь, я тоже использую в некоторых случаях, например при CICD из гитлаба.

Но в целом стараюсь не использовать контейнеризацию там, где это явно не необходимо.

Детский взгляд на мир - сразу радикально, в штыки.

А ты устранил ошибку в docker контейнерах postgresql, из-за которой срабатывает jit компилятор и запросы работают медленнее?

По умолчанию он включен.

anonymous
()
Ответ на: комментарий от firkax

Что-то пошло не так, и теперь home находится и в корне, и на отдельном разделе. Размер папок совпадает. Есть ли возможность убрать эту папку из root, оставив только на отдельном разделе?

Кто-то тут врёт.

kostik87 ★★★★★
()
Ответ на: комментарий от kostik87

Ещё раз - ему гуёвый файловый менеджер показывает home и как директорию в корне, и как ссылку на точку монтирования из левой панели, смутило его именно это. К проблемам файловой системы это всё отношения не имеет. Он хочет чтобы фм не показывал ему директорию home когда он смотрит корень, типа как в винде отдельные диски C: D:

firkax ★★★★★
()
Ответ на: комментарий от firkax

Нет, проблема в том, что home занимает место и на отдельном для него разделе, и в корне, где выделенная память составляет всего 70Гб и из-за этого быстро заканчивается

yaroslvasil
() автор топика
Последнее исправление: yaroslvasil (всего исправлений: 1)
Ответ на: комментарий от yaroslvasil

home занимает место и на отдельном для него разделе, и в корне, где выделенный раздел составляет всего 70Гб и из-за этого быстро заканчивается

в юниксах иерархия файловых систем устроена не так как в виндовс. в линуксе можно смонтировать раздел диска в любое место в иерархии, при этом файлы, записываемые в точку монтирования будут записываться только на смонтированный раздел. то есть, если ты будешь записывать файлы в /home, то место на корневом разделе (/dev/sda2) не будет расходоваться, заполняться будет лишь /dev/sda4, то есть только 850-гиговый раздел.

anonymous
()
Ответ на: комментарий от yaroslvasil

если хочешь очистить место занимаемое /home на разделе с корневой системой, то сделай как сказал костик чуть выше. получишь доступ к файловой системе корня без примонтированных фс.
и сам увидишь что, где, кого и сколько занимает.

pfg ★★★★★
()
Ответ на: комментарий от firkax

А как ты собираешься элегантно строить стабильную систему с автоподнятием сервисов, если одна из копий сервиса упала?

Без кубернетес?

С одной нодой резервирование ок - круто.

Даже с двумя и обмазаться скриптами, ну либо использовать кластеризацию postgresql и прочих СУБД, тоже самое отдельно настраивается в nginx.

А в кубернетес - из коробки.

Плюс корректная работа с самописными сервисами на java, go, python, прочем.

Понятно. что всё можно сделать как и раньше без кубернетес, всё зависит от архитектуры системы.

kostik87 ★★★★★
()
Ответ на: комментарий от anonymous

неа, сколь помню раздел каким финтом можно смонтировать в подкаталог пустого VFS :)
и это будет «работать», просто VFS будет матом крыть админа ошибками сыпать в сислог на любые пути кроме рабочего.

pfg ★★★★★
()

Для использования Btrfs должны быть причины:

  • Тебе нужно сжатие на уровне ФС. Но оно не применимо почти ко всем типам медиафайлов, так как те и так уже сжаты. Поэтому на живой системе добиться экономиии места более 25% сложно
  • Дедупликация. При копировании файла через ЦОПЭ мы не создаем его копию, мы лишь ссылаемся на оригинал. И это удобно. Но ес-но файловая система сама не в состоянии отследить наличие дубликатов, созданных иными путями, поэтому для более умной дедупликации есть специальные утилиты.
  • Снапшоты. Ближайший аналог коммиты в Git. Сделал снапшот, зафиксировал состояние к которому можешь откатиться в любой момент. Удобнее всего это делать через гуй типа Btrfs Assistant
  • Зеркалирование на уровне ФС. Ты можешь создать RAID-1 без сторонних утилит, что повышает шансы сохранить данные в случае смерти контроллера SSD
  • Тебе не нужно создавать отдельные разделы для разных точек монтирования. Так как файловая система имеет сабвольюмы, которые в проводнике представлены как обычные папки. Ты можешь в них монтироваться, изменять им способ и уровень сжатия, отключать COW и тд
  • Btrfs хороша для Docker, так как позволяет экономить место, если тот заставить использовать Btrfs в качестве файлового «драйвера»

Если тебе из этого ничего не нужно, то используй Ext4, потому как у Btrfs есть минусы:

  • Она медленее чем тот же Ext. Без сжатия или со сжатием zstd:1 скорость записи будет высокой, но все равно не позволит тебе использовать весь потанцевал сверхбыстрых SSD. Причем, если используется сжатие, то количество записываемых несжатых данных может быть даже выше чем у некрофильской ФС столь любимой местными гурофагами и ретроградами
  • Ее нужно уметь обслуживать. Рядовой рукожоп не в состоянии загуглить решение каких-то детских проблем типа ошибки чексум
  • Базы данных работают медленее и требуют установки атрибута NoCoW на каталоги с данными. Правда, некотрые из них могут сами определять использование Btrfs и сами устанавливать нужный атрибут
  • В ней нет встроенного шифрования, поэтому нужно использовать LUKS и пр
  • Она не подходит для HDD из-за фрагментации и невысокой скорости произвольного чтения в последних

Касательно твоих проблем, то:

  • Отдельные разделы для /home и / - это чисто серверный подход. Непривелегированные пользователи сервака могут каким-нибудь мусором занять все место, и если корень не отделен от хомяка, то нельзя будет даже подключиться к серваку чтобы почистить место. Те для рядового мышевоза оно НЕНУЖНО
  • В Btrfs ситуация состоит несколько иначе. Если ты используешь автоматическое снятие снапшотов, то желательно иметь отдельные сабвольюмы @ и @home, потому снапшоты корня не представляют какой-либо ценности в отличии от данных в хомяке. Еще можно создать сабвольюм @var_log, так как потеря логов никак не влияет на работоспособность системы. Ну и у разных сабвольюмов может быть разный уровень сжатия, ага
rtxtxtrx
()
Последнее исправление: rtxtxtrx (всего исправлений: 5)
Ответ на: комментарий от yaroslvasil
<file system> <dir> <type> <options> <dump> <pass>
# /dev/sda2
UUID=5feeb917-a548-4968-b216-cf882dc7064c       /               btrfs           rw,relatime,ssd,discard=async,space_cache=v2,subvolid=5,subvol=/        0 0

# /dev/sda4
UUID=fc51c937-e8c1-4150-8417-cdab0992798d       /home           btrfs           rw,relatime,ssd,discard=async,space_cache=v2,subvolid=5,subvol=/

у тебя /home смонтирован почему-то в корневой сабволюм, а должно быть subvol=/home, поправьте если не прав

anonymous
()
Ответ на: комментарий от rtxtxtrx

Отдельные разделы для /home и / - это чисто серверный подход. Непривелегированные пользователи сервака могут каким-нибудь мусором занять все место, и если корень не отделен от хомяка, то нельзя будет даже подключиться к серваку чтобы почистить место. Те для рядового мышевоза оно НЕНУЖНО

если тебе не пригождалось, то это не значит, что никто другой не понимает сию тонкую удобность :)

у меня на домашнем мышевозном компе, отделенный хомяк уже пережил ~пяток переформатирований корневого раздела :)
и даже жил, совместно с двумя корневым разделам. на одном был xubuntu, на другом была centos c mate, оба монтировали общий /home и все проги вполне адкеватно его использовали.
загружался то в одну систему, то в другую, интересно было сравнить %)

выделение /home это аккурат про отделение бардака файлов пользователя от системы. на домашнем компе это очень удобно.
к примеру, набор фильмов, торрентов, музона, фоток и всего прочего хлама к системе не привязаны и прекрасно живут отдельно от неё, что с системой ты не твори при этом.

pfg ★★★★★
()
Ответ на: комментарий от pfg

Я тоже разделял и точно так же из-за мнимой удобности, но там больше проблем было с тем, что рут слишком маленький, из-за этого извращался с LVM… хорошо что однажды поставил Btrfs…

rtxtxtrx
()