14 votes

Comment créer une image disque à partir de la ligne de commande ?

Actuellement, une partie de mon processus de construction est la suivante ;

  • Démarrer Utilitaires/Utilitaire de disque
  • Sélectionnez Nouvelle image
  • Définir l'enregistrement sous forme de widget
  • Définir le nom du widget
  • Définir la taille à la taille personnalisée 50 mb
  • Set Format Mac OS Extended

mais est-il possible de faire tout cela à partir de la ligne de commande ?

21voto

da4 Points 4796

Vous pouvez le faire avec le hdiutil outil. La configuration appropriée dans votre cas serait la suivante :

hdiutil create -size 50m -fs HFS+ -volname Widget /path/to/save/widget.dmg

Modifiez évidemment le "Widget" et le chemin d'accès en fonction de vos besoins.

Quelques options supplémentaires qui peuvent être utiles :

  • -srcfolder /path/to/source Cela créera l'image disque avec les données du dossier spécifié comme contenu.
  • -megabytes 50 utilisé à la place de -size 50m . Ceci utilisera des mégaoctets de taille binaire (2^20 octets) au lieu de décimale (10^6 octets).
  • -srcdevice /dev/diskXsY C'est comme srcfolder Il s'agit d'une copie par bloc à partir d'un autre périphérique, comme une partition de disque dur ou un DVD. Utile pour créer des clones et des images de disques d'installation, etc.

3voto

AdriZ Points 121

J'ai fait un petit bash script pour automatiser la création d'une image disque.

Il crée un répertoire temporaire pour stocker tous les fichiers nécessaires puis les exporte dans un nouveau fichier DMG. Le répertoire temporaire est ensuite supprimé.

#!/bin/bash
# Create .dmg file for macOS

# Adapt these variables to your needs
APP_VERS="1.0"
DMG_NAME="MyApp_v${APP_VERS}_macos"
OUTPUT_DMG_DIR="path_to_output_dmg_file"
APP_FILE="path_to_my_app/MyApp.app"
OTHER_FILES_TO_INCLUDE="path_to_other_files"

# The directory of the script
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

# The temp directory used, within $DIR
WORK_DIR=`mktemp -d "${DIR}/tmp"`

# Check if tmp dir was created
if [[ ! "${WORK_DIR}" || ! -d "${WORK_DIR}" ]]; then
    echo "Could not create temp dir"
    exit 1
fi

# Function to deletes the temp directory
function cleanup {
    rm -rf "${WORK_DIR}"
    #echo "Deleted temp working directory ${WORK_DIR}"
}

# Register the cleanup function to be called on the EXIT signal
trap cleanup EXIT

# Copy application on temp dir
cp -R "${APP_FILE}" "${WORK_DIR}"
# Copy other files without hidden files
rsync -a --exclude=".*" "${OTHER_FILES_TO_INCLUDE}" "${WORK_DIR}"

# Create .dmg
hdiutil create -volname "${DMG_NAME}" -srcfolder "${WORK_DIR}" -ov -format UDZO "${OUTPUT_DMG_DIR}/${DMG_NAME}.dmg"

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X