Archives pour la catégorie ‘Mac OS X’

Debian : installation de wheezy sur poste Mac

Cet article détaille l’installation d’une Debian Wheezy sur un Mac Mini en OS X 10.8. Pour pouvoir démarrer un OS non Apple, il faut installer un boot manager non bridé tel que refind (celui d’Apple ne présente que les partitions Apple). Concernant Linux, l’installation de GRUB EFI est obligatoire, ce qui nécessite en plus la copie d’un fichier sur la partition EFI (partition 1) du disque dur. Ces deux points étant effectués, un système Linux peut être installé et lancé sur un poste Mac.

Vérification du firmware EFI

Je n’ai pas eu de problème avec mon poste mais il est bon de savoir quel type de firmware EFI vous possèdez : 32 ou 64 bits. Pour ce faire, la commande à utiliser est la suivante :

$ ioreg -l -p IODeviceTree|grep firmware
| |   "firmware-revision" = <0a000100>
| |   "firmware-abi" = <"EFI64">
| |   "firmware-vendor" = <4100700070006c0065000000>

Redimensionnement de la partition Mac OS X

La partition de Mac OS X doit être redimensionnée avant de pouvoir installer un nouveau sytème. Le redimensionnent s’effectue à chaud avec l’utilitaire de disque. Ne touchez pas au schéma de partitionnement sous risque de perte de données !

Pour information, voici mon partitionnement final.

Utilitaire disque : partition Mac redimensionnée

Installation de refind

Le boot manager est disponible ici : http://www.rodsbooks.com/refind/.

Toute l’installation est automatisée et aucune configuration n’est nécessaire :

# ./install.sh
Installing rEFInd on Linux....
ESP was found at /boot/efi using vfat
Copied rEFInd binary file refind_x64.efi

Copying sample configuration file as refind.conf; edit this file to configure
rEFInd.

Installation has completed successfully.

On peut ensuite passer au partitionnement du disque dur.

Création des partitions GPT pour Linux

Le partitionnement est effectué avec gptfdisk : http://sourceforge.net/projects/gptfdisk/

On initialise au préalable la table MBR. Aucune partition MBR n’est à ajouter :

$ sudo gdisk /dev/disk0
> x
> n
> o

Disk size is 625142448 sectors (298.1 GiB)
MBR disk identifier: 0x00000000
MBR partitions:

Number  Boot  Start Sector   End Sector   Status      Code
1                     1    625142447   primary     0xEE

> w

Le partitionnement GPT peut débuter : je crée ici une partition pour /boot et une partition LVM (si vous ne souhaitez pas de LVM, créez autant de partitions nécessaires). Attention, il faut laisser un espace libre de 128 Mo entre la partition Mac et la partition Linux /boot. Ceci est obligatoire sous peine de planter votre système OS X lors d’une mise à jour.

$ sudo gdisk /dev/disk0
> p
> n (first sector: +128M, size: +256M, type 8300)
> n (all remaining, type 8E00)
> p

Number  Start (sector)    End (sector)  Size       Code  Name
1              40          409639   200.0 MiB   EF00  EFI system partition
2          409640       314726519   149.9 GiB   AF00  Customer
3       314988664       315512951   256.0 MiB   8300  Linux filesystem
4       315512952       625142414   147.6 GiB   8E00  Linux filesystem

> w

Le partitionnement EFI étant terminée, l’installation Linux peut débuter

Installation de Wheezy

L’installation Debian est faite à partir du CD en mode expert (touche C au boot).

A l’étape de partitionnement, il faut utiliser la partition 4 pour /boot et la partition 5 pour LVM. Je crée ensuite un VG de 3 LV : swap, / et /home. Pour la sélection des packages, j’ai pour habitude faire une clean install donc seule l’installation du serveur SSH est activée. L’étape cruciale est au niveau du bootloader : il ne faut pas l’installer car il s’agit de GRUB pour système MBR.

L’installation étant finalisée, il reste à installer GRUB pour EFI.

Installation de GRUB EFI

On redémarre à nouveau sur le CD Debian mais en mode rescue.

On lance un chroot sur la partition racine du système Linux (partition 5), puis les commandes suivantes dans le shell :

# mount /dev/sda4 /boot
# mkdir /boot/efi
# mkdir /dev/sda1 /boot/efi
# apt-get install grub-efi
# grub-install /dev/sda4
# ls /boot/efi/EFI/
APPLE  debian
# update-grub

La partition /boot est montée, puis la partition EFI dans /boot/efi. Le package GRUB est installé.  J’installe ensuite GRUB sur la partition /boot (/dev/sda4). Le bootloader de GRUB est alors copié sur la partition EFI afin qu’il puisse lancer son stage2 présent sur /boot et au final Linux. Je finalise en mettant à jour le menu GRUB.

Le système Linux est maintenant démarrable. En cas de non démarrage du système par GRUB, les commandes précédentes sont à effectuer de nouveau à partir d’un boot en mode rescue, en chrootant sur la partition racine.

Sous Linux, les packages suivants seront nécessaires pour la prise en charge du matériel :

# apt-get install cpufrequtils firmware-b43-installer

Réseau : monitoring de la bande passante en console

bwm-ng est un outil pour monitorer en console la bande passante de votre réseau. Il est multiplateforme (Linux, BSD, Mac OS X, etc …) d’où son intérêt dans le cas d’une infrastructure exotique.

bwm-ng v0.6 (probing every 0.500s), press 'h' for help
 input: getifaddrs type: rate
 iface                 Rx                   Tx                Total
 ====================================================================
 em0:        1256.49 KB/s          159.00 KB/s         1286.69 KB/s
 em1:        1717.76 KB/s          111.22 KB/s         1749.13 KB/s
 em2:        9946.26 KB/s        37662.34 KB/s        38150.35 KB/s
 em3:       37537.95 KB/s        10023.27 KB/s        38024.49 KB/s
 lo0:           2.54 KB/s            2.54 KB/s            5.08 KB/s
 vlan0:         0.00 KB/s            0.00 KB/s            0.00 KB/s
 vlan1:     37505.46 KB/s         6869.97 KB/s        37949.06 KB/s
 vlan2:        96.75 KB/s         9791.27 KB/s         9875.43 KB/s
 vlan3:         0.23 KB/s            0.08 KB/s            0.31 KB/s
 pflog0:        0.00 KB/s            2.43 KB/s            2.43 KB/s
 tun0:         36.66 KB/s          134.23 KB/s          142.38 KB/s
 --------------------------------------------------------------------
 total:     75565.96 KB/s        38635.92 KB/s       114201.88 KB/s

Mac OS X : normalisation UTF-8 des noms de fichiers

L’encodage UTF-8 n’a pas dit son dernier mot ! La normalisation UTF-8 des noms de fichiers/répertoires est différente entre les systèmes d’exploitation. Mac OS X utilise ainsi la forme D (NFD) alors que les autres systèmes dont Linux utilisent la forme C (NFC).

Bref, la commande magique s’appelle convmv et elle permet de convertir la normalisation NFC en NFD (et inversement) suite à une copie de fichiers entre les deux systèmes.

Exemple d’utilisation :

# convmv -r -i -f utf8 -t utf8 --nfc --notest .

Pour convertir de Linux vers Mac OS, cela donne donc :

# convmv -r -i -f utf8 -t utf8 --nfd --notest .

Pour effectuer un test et confirmer le format de conversion, vous pouvez omettre l’option –notest.

Man page : http://www.j3e.de/linux/convmv/man/
Download : http://www.j3e.de/linux/convmv/

Plus d’infos sur la normalisation UTF-8 : http://www.unicode.org/reports/tr15/

OpenVPN : installation console sous Mac OS X (sans GUI)

OpenVPN est un logiciel client/serveur permettant d’interconnecter des réseaux privés distants (VPN) de manière sûre et sécurisée par le protocole SSL/TLS. Il est disponible pour la plupart des OS, pour peu que ceux-ci possèdent les drivers réseaux virtuels nécessaires : les drivers TUN/TAP.

Sous Mac OS X, le plus simple est d’utiliser le logiciel Tunnelblick qui est un package contenant OpenVPN, une interface graphique et les modules noyaux pour le réseau. Cela convient parfaitement pour une utilisation client, mais aucunement dans le cas d’une configuration serveur. Les scripts de création des certificats utilisateur ne sont d’ailleurs pas fournis. De plus, dans le cas d’une utilisation à distance par console SSH, l’interface graphique n’est pas disponible.

Ce billet vous détaille les étapes principales de l’installation console d’OpenVPN sous Mac OS X.

  • Installation des drivers réseaux :

Rendez-vous sur le site des drivers TUN/TAP pour Mac OS : http://tuntaposx.sourceforge.net/. Téléchargez et installez le package. N’oubliez pas de redémarrer votre système pour que les modules noyaux soient chargés automatiquement. Pour le vérifier, lancez cette commande et contrôlez sa sortie :

$ kextstat

Si les drivers ne sont pas chargés, vous pouvez le faire manuellement :

$ sudo kextload /Library/Extensions/tun.kext
$ sudo kextload /Library/Extensions/tap.kext

Les périphériques réseaux doivent être présents dans /dev :

$ ls /dev/tun* /dev/tap*
/dev/tun0  /dev/tun1  /dev/tun10 /dev/tun11 /dev/tun12 /dev/tun13 /dev/tun14 /dev/tun15 /dev/tun2  /dev/tun3  /dev/tun4  /dev/tun5  /dev/tun6  /dev/tun7  /dev/tun8  /dev/tun9

Un de ces périphériques sera spécifié dans le fichier de configuration de votre connexion VPN.

  • Installation d’OpenVPN :

Je l’installe par le biais de MacPorts :

$ sudo port install openvpn2
--->  Computing dependencies for openvpn2
--->  Dependencies to be installed: lzo2
--->  Fetching lzo2
--->  Attempting to fetch lzo-2.03.tar.gz from http://www.oberhumer.com/opensource/lzo/download/
--->  Verifying checksum(s) for lzo2
--->  Extracting lzo2
--->  Configuring lzo2
--->  Building lzo2
--->  Staging lzo2 into destroot
--->  Installing lzo2 @2.03_2
--->  Activating lzo2 @2.03_2
--->  Cleaning lzo2
--->  Fetching openvpn2
--->  Attempting to fetch openvpn-2.1.1.tar.gz from http://lil.fr.distfiles.macports.org/openvpn2
--->  Verifying checksum(s) for openvpn2
--->  Extracting openvpn2
--->  Configuring openvpn2
--->  Building openvpn2
--->  Staging openvpn2 into destroot
--->  Installing openvpn2 @2.1.1_2
--->  Activating openvpn2 @2.1.1_2
--->  Cleaning openvpn2

Je vous renvoie à la documentation d’OpenVPN pour configurer votre connexion VPN. Pour ma part, j’ai créé le répertoire /opt/local/etc/openvpn2 pour y stocker les fichiers de configuration.

Pour lancer une connexion VPN, rien de plus simple :

$ cd /opt/local/etc/openvpn2
$ sudo openvpn2 --config vpn-sample.conf
Mon Aug  9 09:51:52 2010 OpenVPN 2.1.1 i386-apple-darwin10.4.0 [SSL] [LZO2] built on Aug  9 2010
Mon Aug  9 09:51:52 2010 NOTE: the current --script-security setting may allow this configuration to call user-defined scripts
Enter Private Key Password:
Mon Aug  9 09:51:55 2010 WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this
Mon Aug  9 09:51:55 2010 Control Channel Authentication: using 'interact.lu/ta.key' as a OpenVPN static key file
Mon Aug  9 09:51:55 2010 Outgoing Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
Mon Aug  9 09:51:55 2010 Incoming Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
Mon Aug  9 09:51:55 2010 LZO compression initialized
Mon Aug  9 09:51:55 2010 Control Channel MTU parms [ L:1542 D:166 EF:66 EB:0 ET:0 EL:0 ]
Mon Aug  9 09:51:55 2010 Data Channel MTU parms [ L:1542 D:1450 EF:42 EB:135 ET:0 EL:0 AF:3/1 ]
Mon Aug  9 09:51:55 2010 Local Options hash (VER=V4): '504e774e'
Mon Aug  9 09:51:55 2010 Expected Remote Options hash (VER=V4): '14168603'
Mon Aug  9 09:51:55 2010 Socket Buffers: R=[42080->65536] S=[9216->65536]
Mon Aug  9 09:51:55 2010 UDPv4 link local: [undef]
Mon Aug  9 09:51:55 2010 UDPv4 link remote: 80.80.80.80:1194
Mon Aug  9 09:51:55 2010 TLS: Initial packet from 80.80.80.80:1194, sid=750c51a1 be4999e0
Mon Aug  9 09:51:56 2010 VERIFY OK: depth=1, /C=FR/ST=FR/L=France/O=Sample/CN=Sample_CA/emailAddress=admin@sample.fr
Mon Aug  9 09:51:56 2010 VERIFY OK: nsCertType=SERVER
Mon Aug  9 09:51:56 2010 VERIFY OK: depth=0, /C=FR/ST=FR/L=France/O=Sample/CN=Sample_CA/emailAddress=admin@sample.fr
Mon Aug  9 09:51:57 2010 Data Channel Encrypt: Cipher 'BF-CBC' initialized with 128 bit key
Mon Aug  9 09:51:57 2010 Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Mon Aug  9 09:51:57 2010 Data Channel Decrypt: Cipher 'BF-CBC' initialized with 128 bit key
Mon Aug  9 09:51:57 2010 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Mon Aug  9 09:51:57 2010 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 1024 bit RSA
Mon Aug  9 09:51:57 2010 [server] Peer Connection Initiated with 80.80.80.80:1194
Mon Aug  9 09:51:59 2010 SENT CONTROL [server]: 'PUSH_REQUEST' (status=1)
Mon Aug  9 09:51:59 2010 PUSH: Received control message: 'PUSH_REPLY,route 192.168.201.0 255.255.255.0,ping 10,ping-restart 120,dhcp-option DNS 192.168.100.254,route 192.168.1.0 255.255.255.0,route 192.168.2.0 255.255.255.0,route 192.168.100.0 255.255.255.0,ifconfig 192.168.201.1 192.168.201.2'
Mon Aug  9 09:51:59 2010 OPTIONS IMPORT: timers and/or timeouts modified
Mon Aug  9 09:51:59 2010 OPTIONS IMPORT: --ifconfig/up options modified
Mon Aug  9 09:51:59 2010 OPTIONS IMPORT: route options modified
Mon Aug  9 09:51:59 2010 OPTIONS IMPORT: --ip-win32 and/or --dhcp-option options modified
Mon Aug  9 09:51:59 2010 ROUTE default_gateway=0.0.0.0
Mon Aug  9 09:51:59 2010 TUN/TAP device /dev/tun0 opened
Mon Aug  9 09:51:59 2010 /sbin/ifconfig tun0 delete
Mon Aug  9 09:51:59 2010 /sbin/ifconfig tun0 192.168.201.1 192.168.201.2 mtu 1500 netmask 255.255.255.255 up
Mon Aug  9 09:51:59 2010 /sbin/route add -net 192.168.201.0 192.168.201.2 255.255.255.0
add net 192.168.201.0: gateway 192.168.201.2
Mon Aug  9 09:51:59 2010 /sbin/route add -net 192.168.1.0 192.168.201.2 255.255.255.0
add net 192.168.1.0: gateway 192.168.201.2
Mon Aug  9 09:51:59 2010 /sbin/route add -net 192.168.2.0 192.168.201.2 255.255.255.0
add net 192.168.2.0: gateway 192.168.201.2
Mon Aug  9 09:51:59 2010 /sbin/route add -net 192.168.100.0 192.168.201.2 255.255.255.0
add net 192.168.100.0: gateway 192.168.201.2
Mon Aug  9 09:51:59 2010 Initialization Sequence Completed

Si vous obtenez à la place l’erreur suivante :

Mon Aug  9 09:49:02 2010 Cannot allocate TUN/TAP dev dynamically
Mon Aug  9 09:49:02 2010 Exiting

Cela signifie que les modules noyaux ne sont pas chargés. Reportez-vous à l’étape précédente pour y remédier.

Si vous devez utiliser un serveur DNS différent de votre connexion Internet, créez une nouvelle configuration réseau  dans Préférences Systèmes / Réseau et utilisez les commandes suivantes pour la changer :

$ networksetup -listlocations
Automatic
Sample VPN
$ sudo networksetup -switchtolocation 'Sample VPN'
found it!
$ sudo networksetup -getcurrentlocation
Sample VPN

Au revoir Tunnelblick !

Fichier de configuration client : [Téléchargement introuvable]

Mac OS X : placer les widgets Dashboard directement sur le bureau

Pour pouvoir utiliser vos widgets Dashboard directement depuis votre bureau, un paramètre caché est à activer :

$ defaults write com.apple.dashboard devmode YES

Il faut relancer le Dock ensuite :

$ killall Dock

Activez ensuite Dashboard par la touche F12, sélectionnez le widget et commencez à le déplacer. Tout en ne relâchant pas le bouton de la souris, appuyez sur F12. Le widget demeure à présent sur le bureau. Pour l’enlever, faites l’opération inverse.

Note : ce n’est vraiment utile qu’en configuration multi-écrans, étant donné que les widgets seront toujours au premier plan.

MacPorts : cleanup & upgrade

Quelques commandes d’utilisation de MacPorts …

– Nettoyer les fichiers objets et temporaires liés à la compilation de chaque port :

$ sudo port -f clean --all installed

– Désinstaller toutes les versions antérieures des ports installés :

$ sudo port -f uninstall inactive

– Effectuer une mise à jour avec nettoyage automatique :

$ sudo port selfupdate
$ sudo port -fuc upgrade outdated

Réseau : géolocalisation de votre connexion

Pour géolocaliser votre connexion Internet (au niveau du DSLAM de votre FAI), une commande sympa :

$ curl -s "http://www.geody.com/geoip.php?ip=$(curl -s icanhazip.com)" | sed '/^IP:/!d;s/<[^>][^>]*>//g'
IP: XX.XX.XX.XXX Location: Munshausen, Luxembourg   (Visual Online S.A.)

Mac OS X : Java 6 pour Mac à CPU 32 bits

Le port de Java 6 pour les Macs à CPU 32 bits (Intel CoreDuo 2006) est disponible au téléchargement sur cette page :

http://landonf.bikemonkey.org/static/soylatte/

Mac OS X : masquer un utilisateur de la login box

Pour masquer un compte utilisateur de la login box de Mac OS (et également du menu de permutation / Fast Switch User), la commande à saisir est la suivante en spécifiant le compte à la fin :

$ sudo defaults write /Library/Preferences/com.apple.loginwindow HiddenUsersList -array-add postgres

Le compte utilisateur masqué reste évidemment toujours actif. Pour masquer l’élément « Autre… » de la login box (en mode liste), c’est cette commande :

$ sudo defaults write /Library/Preferences/com.apple.loginwindow SHOWOTHERUSERS_MANAGED -bool false

Mac OS X : forcer le boot noyau 64 bits de Snow Leopard

Pour activer et démarrer définitivement sous le noyau 64 bits de Snow Leopard, la commande à exécuter est la suivante :

$ sudo nvram boot-args="arch=x86_64"

Votre machine doit évidemment supporter le 64 bits (noyau + EFI64 + CPU), mais aussi vos drivers qui doivent être 64 bits (ce qui n’est pas le cas de tous les constructeurs actuellement…). Si tout se passe bien un uname -a doit vous indiquer le mode x86_64.

Pour basculer sur le noyau 32 bits par défaut, la commande suivante sera nécessaire :

$ sudo nvram boot-args=""
Haut de page