Festplatte auf SD Karte umziehen

juan_

juan_

König
Hi zusammen,
ich habe einen alten Laptop zum Server umfunktioniert.
habe bei der Installation von CentOS bzw. der Partitionierung die Standardeinstellungen übernommen, weil das Thema für mich eigentlich irrelevant war.
Nun ist der Laptop doch schon etwas älter und ich habe einiges an Arbeit reingesteckt, sodass ich darüber nachgedacht habe, die Festplatte durch eine SD Karte zu tauschen (Strom + Lautstärke + Kosten sind die primären Gründe für die SD Karte). Leider hat die Festplatte ~320 GB, welche - dank meiner Unaufmerksamkeit - komplett partitioniert sind.

habe ein bisschen gegooglet, aber nichts für mich anwendbares gefunden.. daher die Frage hier.

Wie kann ich die 320GB Festplatte auf eine ~32 GB SD Karte umziehen? ich habe CentOS + Gnome und ca. 10GB an "Serverapplikation" (MidTier+Daten+Software) installiert.

Ich habe um ehrlich zu sein etwas Angst, meine Partitionen zu verkleinern. Wenn es aber nicht anders geht, würde ich das manuell machen.. aber am liebsten wäre mir eine Lösung, in welcher das geclonte Image (mit MBR usw.) verkleinert wird :)

Bin für jeden Tipp dankbar. hier schonmal eine Übersicht an meinem FS:
# df -h
Dateisystem Größe Benutzt Verf. Verw% Eingehängt auf
/dev/mapper/centos-root 50G 31G 20G 62% /
devtmpfs 858M 0 858M 0% /dev
tmpfs 869M 88K 869M 1% /dev/shm
tmpfs 869M 9,0M 860M 2% /run
tmpfs 869M 0 869M 0% /sys/fs/cgroup
/dev/mapper/centos-home 244G 446M 244G 1% /home
/dev/sda1 497M 126M 372M 26% /boot
tmpfs 174M 16K 174M 1% /run/user/1000


# blkid -o list -w /dev/null
device fs_type label mount point UUID
--------------------------------------------------------------------------------------------------------------------------
/dev/sda1 xfs /boot e682054b-84e9-4913-afaa-b6f494861bc1
/dev/sda2 LVM2_member (in use) 7BQ4R2-q42E-AZOj-diZ2-Cbgy-XbP1-XLqreu
/dev/mapper/centos-root xfs / 00cb73a8-43f9-4ff4-8aff-47df5edba5a5
/dev/mapper/centos-swap swap <swap> 20326869-1821-4fa3-ba1e-a138dca36975
/dev/mapper/centos-home xfs /home e81dc0a4-3c10-45a0-9bc9-67287dcd24dd

# du -sh /*
0 /bin
101M /boot
144K /dev
29M /etc
404M /home
0 /lib
0 /lib64
0 /media
0 /mnt
5,9G /opt
0 /proc
21G /root
du: Zugriff auf „/run/user/1000/gvfs“ nicht möglich: Keine Berechtigung
9,0M /run
12M /sas
0 /sbin
0 /srv
0 /sys
53M /tmp
3,1G /usr
768M /var
Gruß,
J.
 
M

marce

Kaiser
erstelle die gewünschten Part. auf der SD-Karte, kopiere die Dateien rüber und installiere den Bootloader auf die SD - ob und wie evtl. weitere Anpassungen gemacht werden müssen kommt ein wenig auf die aktuelle Installation des Systems an (fstab u.s.w.)

Alternativ - komplett neu auf die SD installieren und dann die relevanten Konfigs rüberkopieren - je nach Systemumfang evtl. der geringere Aufwand.
 
juan_

juan_

König
Danke!

Habe auch gerade gelesen, dass clonezilla das im advanced Modus wohl kann.
Kann das jmd bestätigen?
 
H

hellfire

Doppel-As
So prinzipiell hast Du laut Deiner df - Ausgabe 31 GB Platz belegt. Das ist wohl zu viel für Deine 32 GB SD-Card. Da musst Du im Verzeichnis /root erst Mal etwas aufräumen.
Du kannst gerne irgendwelche Experimente mit Clonezilla versuchen. Vielleicht klappt da sogar.

Die manuelle Vorgehensweise, die meistens funktioniert wäre:

  1. Rettungssystem hochfahren mit SD + Festplatte angeschlossen
  2. SD partitionieren + formatieren + mounten
  3. Daten kopieren
  4. Dateien anpassen(/SDCARD/etc/fstab /SDCARD/boot/grub/grub.cfg evtl. noch /SDCARD/etc/mtab)
  5. Pseudo-FS mounten ( /proc /sys /dev )
  6. chroot auf /SDCARD
  7. grub-install
Das mal so im Schnelldurchlauf.
 
juan_

juan_

König
Hi,
keine Ahnung woher die 21G in root kommen:

# du -sh /root/*
4,0K /root/anaconda-ks.cfg
0 /root/Bilder
0 /root/Dokumente
0 /root/Downloads
4,0K /root/initial-setup-ks.cfg
0 /root/Musik
0 /root/Öffentlich
68K /root/sasuser.v94
0 /root/Schreibtisch
0 /root/Videos
0 /root/Vorlagen

Aber vielen Dank! ich probiere es mal!
 
H

hellfire

Doppel-As
Probiere mal:

Code:
cd /root;ls -A | xargs du -sk | sort -k +1n | tail -n 20
 
Zuletzt bearbeitet:
juan_

juan_

König
Top. Vielen Dank.
Im Müll lagen noch 21G uppps :)

Dann probiere ich mal clonezilla
 
juan_

juan_

König
Hi,
ich habe die Platte jetzt per ClonZilla auf SD Karte kopiert. Laut CZ sieht alles ok aus, wenn ich allerdings von der SD Karte boote, bricht der CentOS Start mit folgender Meldung ab:

/dev/centos/root does not exist
/dev/centos/swap does not exist
/dev/mapper/centos-root does not exist

habt ihr eine Idee, was beim klonen schief gegangen ist?

Danke und Gruß,
 
F

florian0285

Eroberer
Könnte auch der Verweis auf die root partition in grub sein

cat grub.cfg
cat fstab

und hier posten

hab ich das hier nicht grad auf linuxforen.de gelesen?
 
juan_

juan_

König
8o8o8o
ich habe weder eine /etc/fstab noch ein /boot folder (in dem emergency mode)
Was ist denn hier passiert?

Oder brauchst du die Einträge aus dem Quellsystem?

hab ich das hier nicht grad auf linuxforen.de gelesen?

wäre ja super. gibts da ne Lösung?
 
Zuletzt bearbeitet:
F

florian0285

Eroberer
ja von quellsystem...

Du musst die Partitionen nur mounten...

War ne Verwechslung da gings drum alles auf nen stick zu kopieren.
 
juan_

juan_

König
achso puhh:)

/etc/fstab
#
# /etc/fstab
# Created by anaconda on Tue May 24 08:42:31 2016
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root / xfs defaults 0 0
UUID=e682054b-84e9-4913-afaa-b6f494861bc1 /boot xfs defaults 0 0
/dev/mapper/centos-home /home xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0

/boot/grub2/grub.cfg:
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub2-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
set pager=1

if [ -s $prefix/grubenv ]; then
load_env
fi
if [ "${next_entry}" ] ; then
set default="${next_entry}"
set next_entry=
save_env next_entry
set boot_once=true
else
set default="${saved_entry}"
fi

if [ x"${feature_menuentry_id}" = xy ]; then
menuentry_id_option="--id"
else
menuentry_id_option=""
fi

export menuentry_id_option

if [ "${prev_saved_entry}" ]; then
set saved_entry="${prev_saved_entry}"
save_env saved_entry
set prev_saved_entry=
save_env prev_saved_entry
set boot_once=true
fi

function savedefault {
if [ -z "${boot_once}" ]; then
saved_entry="${chosen}"
save_env saved_entry
fi
}

function load_video {
if [ x$feature_all_video_module = xy ]; then
insmod all_video
else
insmod efi_gop
insmod efi_uga
insmod ieee1275_fb
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
fi
}

terminal_output console
if [ x$feature_timeout_style = xy ] ; then
set timeout_style=menu
set timeout=5
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
set timeout=5
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/00_tuned ###
set tuned_params=""
### END /etc/grub.d/00_tuned ###

### BEGIN /etc/grub.d/01_users ###
if [ -f ${prefix}/user.cfg ]; then
source ${prefix}/user.cfg
if [ -n ${GRUB2_PASSWORD} ]; then
set superusers="root"
export superusers
password_pbkdf2 root ${GRUB2_PASSWORD}
fi
fi
### END /etc/grub.d/01_users ###

### BEGIN /etc/grub.d/10_linux ###
menuentry 'CentOS Linux (3.10.0-327.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-327.el7.x86_64-advanced-00cb73a8-43f9-4ff4-8aff-47df5edba5a5' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_msdos
insmod xfs
set root='hd0,msdos1'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1' e682054b-84e9-4913-afaa-b6f494861bc1
else
search --no-floppy --fs-uuid --set=root e682054b-84e9-4913-afaa-b6f494861bc1
fi
linux16 /vmlinuz-3.10.0-327.el7.x86_64 root=/dev/mapper/centos-root ro crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet LANG=de_DE.UTF-8
initrd16 /initramfs-3.10.0-327.el7.x86_64.img
}
menuentry 'CentOS Linux (0-rescue-886a62e5e7dc454f8d1803c92ccb33e3) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-0-rescue-886a62e5e7dc454f8d1803c92ccb33e3-advanced-00cb73a8-43f9-4ff4-8aff-47df5edba5a5' {
load_video
insmod gzio
insmod part_msdos
insmod xfs
set root='hd0,msdos1'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1' e682054b-84e9-4913-afaa-b6f494861bc1
else
search --no-floppy --fs-uuid --set=root e682054b-84e9-4913-afaa-b6f494861bc1
fi
linux16 /vmlinuz-0-rescue-886a62e5e7dc454f8d1803c92ccb33e3 root=/dev/mapper/centos-root ro crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet
initrd16 /initramfs-0-rescue-886a62e5e7dc454f8d1803c92ccb33e3.img
}

### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/20_ppc_terminfo ###
### END /etc/grub.d/20_ppc_terminfo ###

### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f ${config_directory}/custom.cfg ]; then
source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; then
source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###
 
F

florian0285

Eroberer
Als root blkid eintippen und UUID abgleichen, wenn die nicht übereinstimmen haben wir den Übeltäter

Die UUID ist in fstab und grub.cfg enthalten.
 
juan_

juan_

König
hallo,
die Ausgaben sind in der Tag unterschiedlich:

# blkid
/dev/sda1: UUID="e682054b-84e9-4913-afaa-b6f494861bc1" TYPE="xfs"
/dev/sda2: UUID="7BQ4R2-q42E-AZOj-diZ2-Cbgy-XbP1-XLqreu" TYPE="LVM2_member"
/dev/mapper/centos-root: UUID="00cb73a8-43f9-4ff4-8aff-47df5edba5a5" TYPE="xfs"
/dev/mapper/centos-swap: UUID="20326869-1821-4fa3-ba1e-a138dca36975" TYPE="swap"
/dev/sdb1: UUID="e682054b-84e9-4913-afaa-b6f494861bc1" TYPE="xfs"
/dev/mapper/centos-home: UUID="e81dc0a4-3c10-45a0-9bc9-67287dcd24dd" TYPE="xfs"

vs

# blkid
/dev/sda1: UUID="e682054b-84e9-4913-afaa-b6f494861bc1" TYPE="xfs"


allerdings habe ich jetzt keine Ahnung, wie ich die neuen Einträge in die fstab grub.cfg bekomme.. ich habe ja nur diesen Rescue Modus, in welchem ich die Files nicht mal sehe :(
Habe den Rechner gerade mal mit Ubuntu gebootet, aber da sehe ich die Platte auch nicht.

Sorry für die doofen Fragen
 
F

florian0285

Eroberer
Woher kommt denn jetzt sdb? Ich schaus mir später mal an...
 
F

florian0285

Eroberer
Die SD Karte ist eigentlich /dev/mmcblk0

was ist denn jetzt blkid vs. blkid von wo ist die eine und von wo die andere Ausgabe?

sdb1 ist deine home Partition. Ist da noch eine Platte verbaut?

Wo steckt denn die SD? Was sagt

blkid /dev/mmcblk0

Ist die SD über irgendeine Form von Adapter angesteckt?

Im Zweifel gleich nachdem einstecken der SD mal dmesg ausführen und die letzten 10 - 20 Zeilen posten.

Was hast du jetzt genau mit Clonezilla wohin kopiert?

1) Im Endeffekt müsstest du das ganze Partitionslayout auf die SD übertragen bzw. dein Wunschlayout mit mind. Boot und Root Partition.

2) die Daten mit einem (CentOS) LiveSystem verlässlich übertragen. z. B. alles der Hierarchie entsprechend mounten und dann

rsync >pfad alte platte< >pfad neue platte<

3) chroot pfad neue platte
und dann
grub2-install /dev/mmcblk0 && grub2-mkconfig -o /boot/grub2/grub.cfg

Herunterfahren alte Platte abstecken, booten und ggf nochmal mit grub install und mkconfig drüber bügeln falls da was nicht rund lief.

So hab ich eine VM mal auf nen USB Stick portiert.
 
juan_

juan_

König
Hi,
also grundsätzlich bin ich nach der Anleitung vorgegangen: http://clonezilla.org/clonezilla-live-doc.php . Außer, dass ich den Expertenmodus mit der Option -icds verwendet habe (zum Klonen von einer größeren Platte auf eine kleinere). Dachte, dass ich nach dem Klonen nichts weiter machen muss. daher bin ich gerade etwas verwirrt :)

Ich habe SDA auf SDB kopiert. Das waren die einzigen Devices, die mir angezeigt wurden (und verbaut sind). und das hat auch von der Größenordnung so gepasst.

# blkid vom Quellsystem
/dev/sda1: UUID="e682054b-84e9-4913-afaa-b6f494861bc1" TYPE="xfs"
/dev/sda2: UUID="7BQ4R2-q42E-AZOj-diZ2-Cbgy-XbP1-XLqreu" TYPE="LVM2_member"
/dev/mapper/centos-root: UUID="00cb73a8-43f9-4ff4-8aff-47df5edba5a5" TYPE="xfs"
/dev/mapper/centos-swap: UUID="20326869-1821-4fa3-ba1e-a138dca36975" TYPE="swap"
/dev/sdb1: UUID="e682054b-84e9-4913-afaa-b6f494861bc1" TYPE="xfs"
/dev/mapper/centos-home: UUID="e81dc0a4-3c10-45a0-9bc9-67287dcd24dd" TYPE="xfs"

vs

# blkid Zielsystem nach dem Klonen
/dev/sda1: UUID="e682054b-84e9-4913-afaa-b6f494861bc1" TYPE="xfs"


blkid /dev/mmcblk0 gibt mir auf dem Quellsystem mit eingesteckter SD Karte keine Antwort

Vielen Dank!!
 
F

florian0285

Eroberer
Ok dann hab ich mich wohl verguckt.
Normalerweise ist die SD Karte mmcblk aber gut wenn du dir sicher bist [emoji6]

Dein Clonezilla Link führt nur zu ner Sammlung von Howtos.

Hast du jetzt alles auf eine Partition geklatscht?

Theoretisch benötigst du die Boot-Partition. Der Kernel muss für den Bootloader in einem ansprechbaren Bereich liegen. Wandert der Kernel wegen Defragmentierung oder Neuinstallation/Update zu weit nach "hinten" bootet dein Gerät nicht mehr. Daher sollte diese sdx1 und ca. 500MB -1GB groß sein. Das war Stand der Technik bei Festplatten vor 15 Jahren. Ich habe bisher nichts mehr dazu gefunden ob das obsolet ist oder nicht. Sie wird aber immernoch im Standardlayout angelegt und wie das bei SD-Karten ist weiß ich auch nicht.

Versuchs einfach und wenn dein System mal nicht bootet erinnere dich an diesen Beitrag [emoji51]

Du müsstest nur die SD-Karte mounten und in der grub.cfg + fstab die alte UUID gegen die neue vom Zielsystem ersetzen. Dabei kannst du in der fstab die nicht mehr vorhandenen Partitionen auskommentieren und später dann löschen. Also home und swap.

Hier:

/dev/mapper/centos-root / xfs defaults 0 0
UUID=e682054b-84e9-4913-afaa-b6f494861bc1 /boot xfs defaults 0 0

und hier in der grub.cfg

--hint='hd0,msdos1' e682054b-84e9-4913-afaa-b6f494861bc1
else
search --no-floppy --fs-uuid --set=root e682054b-84e9-4913-afaa-b6f494861bc1

Bevor du grub-mkconfig ausführst gibts es in /etc/default/grub und /etc/grub.d/ die Einträge, die dort generiert werden sollen. Da müsstest du nochmal abgleichen ob die UUID dort auftaucht.

Beim Schreiben ist mir eingefallen, dass du eigentlich auch nur die UUID der Partition ändern könntest [emoji23] [emoji16]

Also die neue UUID mit der alten überschreiben.

xfs_admin -U {uuid} {device}

Viel Glück [emoji51]
 

Ähnliche Themen

SD-Karte kaputt?

CentOS 6 - Kernel crashes mit 2.6.32-573.*

load avarage permanent 10

Neue Partition unter openSUSE 12.2 erstellen

X not starting anymore since filesystem was full

Oben