/ varを広いパーティションに移動する方法、またはパーティションのサイズ(この場合は/ dev / sda3)を30Gに増やす方法は?

/ varを広いパーティションに移動する方法、またはパーティションのサイズ(この場合は/ dev / sda3)を30Gに増やす方法は?

私はDebian 9システムで作業しています。パッケージをインストールしようとすると、dpkg次のエラーで失敗します。

Selecting previously unselected package mariadb-server-10.1.
Preparing to unpack .../3-mariadb-server-10.1_10.1.38-0+deb9u1_amd64.deb ...
/var/lib/mysql: found previous version 10.1
ERROR: There's not enough space in /var/lib/mysql/
dpkg: error processing archive /tmp/apt-dpkg-install-ShVFUI/3-mariadb-server-10.1_10.1.38-0+deb9u1_amd64.deb (--unpack):

これはdf -h

Filesystem      Size  Used Avail Use% Mounted on
udev            3.9G     0  3.9G   0% /dev
tmpfs           791M  9.1M  782M   2% /run
/dev/sda2        55G  9.8G   43G  19% /
tmpfs           3.9G  158M  3.8G   4% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/sda1       511M  132K  511M   1% /boot/efi
/dev/sda5       844G  540G  261G  68% /home
/dev/sda3       9.2G  8.7G   32K 100% /var
tmpfs           791M   12K  791M   1% /run/user/1001

fdisk -l出力:

Disk /dev/sda: 931.5 GiB, Disklabel type: gpt
Disk identifier: AAF695F1-3DA1-4E89-86F4-59439A75BCBB
   Device      Start        End    Sectors Size   Type
/dev/sda1       2048    1050623    1048576 512M   EFI System
/dev/sda2    1050624  118237183  117186560 55.9G  Linux filesystem
/dev/sda3 1933993984 1953523711   19529728 9.3G   Linux filesystem
/dev/sda4 1917392896 1933993983   16601088 7.9G   Linux swap
/dev/sda5  118237184 1917392895 1799155712 857.9G Linux filesystem

/var(可能であれば)広いパーティションに移動するには?それともサイズを/dev/sda330Gに増やすには?

答え1

ファイルシステムは論理ボリューム管理(lvm)や他の柔軟な構成システムではなくディスクパーティションにあるため、パーティションを移動/サイズ調整しないことをお勧めします。あまりにもトリッキーで危険です。

/var別のパーティションに移動する方法:

最初のソリューション

ルートファイルシステムには空き容量がかなりあるため、再度/移動できます。/var残念ながら、システムの実行中に/ varをアンマウントまたは変更することはできません。私の提案は、USBドライブまたはCDにあるリカバリライブLinuxディストリビューションを使用してシステムを起動することです。割れた、シェルを開き、次の手順に従ってハードドライブのシステム設定を変更します。

mkdir /tmp/root
mkdir /tmp/var
# mount the filesystems
mount /dev/sda2 /tmp/root
mount /dev/sda3 /tmp/var
# copy everything in /var
# do not forget the / after var in /tmp/var/
rsync -aHXA /tmp/var/ /tmp/root/var

#次に、テキストエディタを使用して、静的マウントリストから/ dev / sda3 / varに関連する行をコメントアウトまたは削除します/tmp/root/var/etc/fstab。ライブシステムでは、デバイスがメインシステムのデバイスと異なる場合がありますので、sda問題が発生する場合がありますので、sdb修正前にご確認ください。

修正後、/dev/sda3 は空き領域がある未使用パーティションです。

2番目の解決策

以下のスペース要件が主にmariadbパッケージとすべての関連データベースファイルで発生すると予想される場合は、2番目のハードドライブまたはSSDをマウントし、そのディスク/パーティションのディレクトリのみを移動する/var/ことが賢明でしょう。/var/lib/mysqlこの場合、データを移動するためにシステムを停止し、他のディストリビューションから起動する必要はありませんが、mariadbサービス(インストールしてアクティブな場合)を停止するだけです。

貴重なファイルを含むmariadbまたはmysqlパッケージをインストールしたかどうかは、あなたの投稿では明確ではありません。/var/lib/mysqlなぜなら、一方ではをSelecting previously unselected package mariadb-server-10.1.他方では見ることができるからです/var/lib/mysql: found previous version 10.1。すでに持っていると仮定すると、

# prepare and format somehow a new disk/partition, let's call it $MYSQLDEV
# mount it in a temporary place
mkdir /tmp/mysql
mount $MYSQLDEV /tmp/mysql
# copy existing data on new partition
rsync -aHXA /var/lib/mysql /tmp/mysql
# if you are really sure you have copied everything,
# type with care and double check
rm -rf /var/lib/mysql/*
# mount filesystem in the final position
umount $MYSQLDEV
rm -f /tmp/mysql
mount $MYSQLDEV /var/lib/mysql/

その後、起動するたびに新しいパーティションをマウントする必要があることをシステムに通知する行をyoutファイルに追加する必要があります。これを置き換えてext4でフォーマットすると仮定すると、/etc/fstab次のようになります。$MYSQLDEV

$MYSQLDEV /var/lib/mysql ext4 defaults 1 2

関連情報