== JinLiveCD/JinWin == === cygwin === * http://www.cygwin.com/ * ±âº» ¼³Ä¡ * Control Panel --> System --> Advanced --> Environment Variables --> System Variables --> Edit --> Path * insert C:\cygwin\bin * reboot * setup À» º°µµ·Î ´Ù¿î·Îµå * devel ¿¡¼­ gcc ¿Í make ¼±Åà === grub and grubinstall === * ftp://alpha.gnu.org/gnu/grub/ * grub-0.93 * http://www.geocities.com/lode_leroy/grubinstall/ * sources of the installer === vim === * http://www.vim.org/download.php#pc * vim64w32.zip * gunzip vim64w32.zip ¼öÇàÇÏ´Ï ÀÌ»óÇÑ ÇൿÇÔ. * windows ±â´ÉÀ» »ç¿ëÇÏ¿© unzip * cp vim.exe /cygwin/bin === nsis === * http://nsis.sourceforge.net/Download * http://sourceforge.net/projects/nsis2se * http://nsis.sourceforge.net/NSIS_Self-Extractor_kit === livecd2win === * µð·ºÅ丮 ±¸Á¶ * %SystemDrive%\LIVECD * base.sqfs, usr.sqfs, version * %SystemDrive%\boot * vmlinuz, initrd.gz, grub, version * %SystemDrive%\boot\grub * stage1, stage2, menu.lst, version * livecd2win.exe Àº extract µÇ´Â µð·ºÅ丮¿¡ »ý¼ºµÊ * uninstall.exe ´Â livecd2win.exe ÀÌ ¼öÇàµÇ¸é, °°Àº µð·ºÅ丮¿¡ »ý¼ºµÊ. * shortcut À» ¸¸µé °ÍÀΰ¡? ¸¸µé ÇÊ¿ä ¾øÀ½. * °¢°¢ÀÇ ¹öÀü ÆÄÀÏÀ» ¸¸µé °ÍÀΰ¡? * vmlinuz, initrd.gz, grub ´Â À̸§¿¡ ¹öÀü ³Ñ¹ö¸¦ ³Ö¾îµµ µÉ °Í °°±º. * base ¿Í usr µµ À̸§¿¡ ¹öÀü ³Ñ¹ö¸¦ ³ÖÀº °ÍÀÌ °¡´ÉÀº Çѵ¥, ¹®Á¦°¡ ÀÖÀ» °Í °°´Ù. === installer === * CD ¿¡ ÀÖ´Â °æ¿ì * ´Ù¿î·ÎµåÇÑ °æ¿ì * °øÅëµÈ ºÎºÐ * %SystemDrive% ¹Ø¿¡ NTLDR, boot.ini ÀÌ Àִ°¡ Á¡°Ë. * ¾øÀ¸¸é? Abort * ÀÖÀ¸¸é boot, LIVECD Àִ°¡ Á¡°Ë * ÀÖÀ¸¸é Áú¹®? version * ¾øÀ¸¸é »õ·Î ¸¸µê. * ÇÊ¿ä ÆÄÀÏµé º¹»ç * boot/grub Àִ°¡ Á¡°Ë * ÀÖÀ¸¸é Áú¹® * ¾øÀ¸¸é »õ·Î ¸¸µê * stage1, stage2 º¹»ç * stage1, stage2 ÀÇ attribure º¯°æ * make menu.lst * grubinstall * error ó¸® {{{ NTFS mount succeeded stage1(11247118) version=3.2 boot_drive=0xff force_lba=0 stage2_address=0x8000 stage2_sector=11247118 stage2_segment=0x800 stage2(11247118+215) 214 sectors to load from sector 11247119 at 0x820 menu '(hd0,1)/boot/menu.lst' stage2 configured on (hd1,1). }}} * cygwin {{{ once you have cygwin installed, you need to run the "cygwin bash shell" and use that as your prompt instead of the regular dos prompt in order to get things to work. the other things are probably installed, but unless you add c:\cygwin\bin (or wherever you installed it) to your PATH environment variable (control panels -> system properties -> advanced -> environment variables) they won't work from a dos prompt (although processing won't build from a dos prompt, you have to use cygwin). }}} * http://www.cs.nyu.edu/rgrimm/teaching/fa05-oop/windows-make.html {{{ ntfsblocklist.c:9:30: ../stage2/shared.h: No such file or directory In file included from ntfsblocklist.c:10: ../stage2/fsys_ntfs.c:51:20: shared.h: No such file or directory ../stage2/fsys_ntfs.c:52:21: filesys.h: No such file or directory In file included from ntfsblocklist.c:10: ../stage2/fsys_ntfs.c: In function `fixup_record': ../stage2/fsys_ntfs.c:202: error: `FSYS_BUF' undeclared (first use in this function) ../stage2/fsys_ntfs.c:202: error: (Each undeclared identifier is reported only once ../stage2/fsys_ntfs.c:202: error: for each function it appears in.) ../stage2/fsys_ntfs.c: In function `get_next_run': ../stage2/fsys_ntfs.c:242: warning: use of cast expressions as lvalues is deprecated ../stage2/fsys_ntfs.c:252: warning: use of cast expressions as lvalues is deprecated ../stage2/fsys_ntfs.c: In function `init_run_list': ../stage2/fsys_ntfs.c:274: error: `FSYS_BUF' undeclared (first use in this function) ../stage2/fsys_ntfs.c: In function `find_attribute': ../stage2/fsys_ntfs.c:294: error: `FSYS_BUF' undeclared (first use in this function) ../stage2/fsys_ntfs.c:323: error: `print_possibilities' undeclared (first use in this function) ../stage2/fsys_ntfs.c:325: warning: implicit declaration of function `print_a_completion' ../stage2/fsys_ntfs.c: In function `get_next_attribute_list': ../stage2/fsys_ntfs.c:387: error: `FSYS_BUF' undeclared (first use in this function) ../stage2/fsys_ntfs.c:411: error: `errnum' undeclared (first use in this function) ../stage2/fsys_ntfs.c:411: error: `ERR_FSYS_CORRUPT' undeclared (first use in this function) ../stage2/fsys_ntfs.c: In function `search_attribute': ../stage2/fsys_ntfs.c:440: error: `FSYS_BUF' undeclared (first use in this function) ../stage2/fsys_ntfs.c: In function `read_attribute': ../stage2/fsys_ntfs.c:559: error: `FSYS_BUF' undeclared (first use in this function) ../stage2/fsys_ntfs.c:577: warning: implicit declaration of function `devread' ../stage2/fsys_ntfs.c: In function `read_mft_record': ../stage2/fsys_ntfs.c:593: error: `FSYS_BUF' undeclared (first use in this function) ../stage2/fsys_ntfs.c: In function `get_16_cluster': ../stage2/fsys_ntfs.c:609: error: `FSYS_BUF' undeclared (first use in this function) ../stage2/fsys_ntfs.c: In function `decompress_block': ../stage2/fsys_ntfs.c:647: error: `errnum' undeclared (first use in this function) ../stage2/fsys_ntfs.c:647: error: `ERR_FSYS_CORRUPT' undeclared (first use in this function) ../stage2/fsys_ntfs.c: In function `ntfs_read': ../stage2/fsys_ntfs.c:711: error: `filepos' undeclared (first use in this function) ../stage2/fsys_ntfs.c:711: error: `FSYS_BUF' undeclared (first use in this function) ../stage2/fsys_ntfs.c:719: error: `disk_read_func' undeclared (first use in this function) ../stage2/fsys_ntfs.c:719: error: `disk_read_hook' undeclared (first use in this function) ../stage2/fsys_ntfs.c:732: error: `errnum' undeclared (first use in this function) ../stage2/fsys_ntfs.c:732: error: `ERR_FSYS_CORRUPT' undeclared (first use in this function) ../stage2/fsys_ntfs.c:835: error: `filemax' undeclared (first use in this function) ../stage2/fsys_ntfs.c: In function `ntfs_mount': ../stage2/fsys_ntfs.c:849: error: `FSYS_BUF' undeclared (first use in this function) ../stage2/fsys_ntfs.c:853: error: `current_drive' undeclared (first use in this function) ../stage2/fsys_ntfs.c:853: error: `current_slice' undeclared (first use in this function) ../stage2/fsys_ntfs.c: In function `ntfs_dir': ../stage2/fsys_ntfs.c:923: error: `FSYS_BUF' undeclared (first use in this function) ../stage2/fsys_ntfs.c:928: error: `errnum' undeclared (first use in this function) ../stage2/fsys_ntfs.c:928: error: `ERR_FSYS_CORRUPT' undeclared (first use in this function) ../stage2/fsys_ntfs.c:939: error: `print_possibilities' undeclared (first use in this function) ../stage2/fsys_ntfs.c:955: error: `ERR_FILE_NOT_FOUND' undeclared (first use in this function) ../stage2/fsys_ntfs.c:967: error: `ERR_BAD_FILETYPE' undeclared (first use in this function) ../stage2/fsys_ntfs.c:973: error: `filemax' undeclared (first use in this function) ../stage2/fsys_ntfs.c:944: warning: value computed is not used ntfsblocklist.c: In function `ntfs_blocklist': ntfsblocklist.c:22: error: `errnum' undeclared (first use in this function) ntfsblocklist.c:26: error: `grub_scratch_mem' undeclared (first use in this function) ntfsblocklist.c:35: error: `filepos' undeclared (first use in this function) ntfsblocklist.c:53: error: `disk_read_func' undeclared (first use in this function) ntfsblocklist.c:53: error: `disk_read_hook' undeclared (first use in this function) ntfsblocklist.c:56: error: `SECTOR_SIZE' undeclared (first use in this function) ntfsblocklist.c:57: error: `filemax' undeclared (first use in this function) make: *** [ntfsblocklist.o] Error 1 }}} * boot.ini ÀÇ rdisk ´Â 0 ·Î µÇ¾î ÀÖÁö¸¸, registry ÀÇ System/MountedDevices/DosDevices/C: ¿¡´Â hd1 À¸·Î µÇ¾î ÀÖÀ½. * °á°úÀûÀ¸·Î probe ¿¡¼­´Â hd1 ÀÌ µ¹¾Æ¿È. * while ÀÇ °æ¿ì ¾È¿¡¼­ ¼³Á¤ÇÑ °ÍÀÌ ¹Û¿¡¼­ ¾ø¾îÁø´Ù? {{{ To edit your environment variables in Windows 2000, right click on My Computer, select Properties. Under the Advance tab, select Environment Variables. Here you can edit the path and other environment variables or create new ones. Note that you will always want to edit the system variables not the user variables. When editing the PATH variable, directories are separated by the semicolon and don't worry about spaces in the directories. Also, in order for running applications will see environment variable changes, you will need to restart them. This includes the command prompt. }}} * mapdisk (hd0) ¿Í mapdisk (hd1) À» ÇØ º¼ °Í * mapdrive -v c: ¸¦ ÇØ º¼ °Í * kernel À» ¹Ù²Ü °æ¿ì ÇÒ ÀÏ * base.sqfs : /boot ¹ØÀÇ ÆÄÀϵé, /lib/modules * LIVECD ¹ØÀÇ base.sqfs * /boot ¹ØÀÇ vmlinuz {{{ [root@localhost usbdisk]# cat /proc/mounts rootfs / rootfs rw 0 0 none /sys sysfs rw 0 0 /dev/sda2 /mnt/sda2 ntfs ro,noatime,nodiratime,uid=0,gid=0,fmask=0177,dmask=077,nls=default,errors=continue,mft_zone_multiplier=1 0 0 none /var tmpfs rw 0 0 /dev/loop0 /mnt/livecd squashfs ro 0 0 none /livecd unionfs rw,dirs=/var/tmp/livecd_cow=rw:/mnt/livecd=rw,debug=0,delete=all,copyup=preserve 0 0 /dev/loop2 /mnt/usr squashfs ro 0 0 none /usr unionfs rw,dirs=/var/tmp/usr_cow=rw:/mnt/usr=rw,debug=0,delete=all,copyup=preserve 0 0 /proc /proc proc rw,nodiratime 0 0 /proc/bus/usb /proc/bus/usb usbfs rw 0 0 none /dev tmpfs rw 0 0 none /dev/pts devpts rw 0 0 none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0 /dev/hdb1 /mnt/hdb1 ext2 rw,nosuid,nodev 0 0 /dev/hdb2 /mnt/hdb2 ext2 rw,nosuid,nodev 0 0 /dev/sda1 /mnt/sda1 vfat rw,nodiratime,nosuid,nodev,fmask=0000,dmask=0000,codepage=cp437,iocharset=ascii 0 0 /dev/sda3 /mnt/sda3 vfat rw,nodiratime,nosuid,nodev,fmask=0000,dmask=0000,codepage=cp437,iocharset=ascii 0 0 /dev/sda5 /mnt/sda5 ext2 rw,nosuid,nodev 0 0 /dev/sdb1 /media/usbdisk vfat rw,nodiratime,nosuid,nodev,fmask=0022,dmask=0022,codepage=cp437,iocharset=ascii 0 0 }}} {{{ [root@localhost usbdisk]# cat /etc/fstab # This file is edited by fstab-sync - see 'man fstab-sync' for details /dev/ram0 / ext2 defaults 1 1 none /proc proc defaults 0 0 none /sys sysfs noauto 0 0 none /dev/pts devpts defaults 0 0 none /dev/shm tmpfs defaults 0 0 # Added by BOOYO /dev/hdb1 /mnt/hdb1 ext2 noauto,users,exec 0 0 # Added by BOOYO /dev/hdb2 /mnt/hdb2 ext2 noauto,users,exec 0 0 # Added by BOOYO /dev/sda1 /mnt/sda1 vfat noauto,users,exec,umask=000 0 0 # Added by BOOYO /dev/sda2 /mnt/sda2 ntfs noauto,users,exec,ro,umask=000 0 0 # Added by BOOYO /dev/sda3 /mnt/sda3 vfat noauto,users,exec,umask=000 0 0 # Added by BOOYO /dev/sda5 /mnt/sda5 ext2 noauto,users,exec 0 0 # Added by BOOYO /dev/sda6 swap swap defaults 0 0 /dev/fd0 /media/floppy auto pamconsole,exec,noauto,managed 0 0 /dev/hda /media/cdrecorder auto pamconsole,exec,noauto,managed 0 0 /dev/sdb1 /media/usbdisk vfat pamconsole,exec,noauto,managed 0 0 }}} {{{ [root@localhost usbdisk]# cat /etc/mtab rootfs / rootfs rw 0 0 none /sys sysfs rw 0 0 /dev/sda2 /mnt/sda2 ntfs ro,noatime,nodiratime,uid=0,gid=0,fmask=0177,dmask=077,nls=default,errors=continue,mft_zone_multiplier=1 0 0 none /var tmpfs rw 0 0 /dev/loop0 /mnt/livecd squashfs ro 0 0 none /livecd unionfs rw,dirs=/var/tmp/livecd_cow=rw:/mnt/livecd=rw,debug=0,delete=all,copyup=preserve 0 0 /dev/loop2 /mnt/usr squashfs ro 0 0 none /usr unionfs rw,dirs=/var/tmp/usr_cow=rw:/mnt/usr=rw,debug=0,delete=all,copyup=preserve 0 0 /proc /proc proc rw,nodiratime 0 0 /proc/bus/usb /proc/bus/usb usbfs rw 0 0 none /dev tmpfs rw 0 0 none /dev/pts devpts rw 0 0 none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0 /dev/hdb1 /mnt/hdb1 ext2 rw,nosuid,nodev 0 0 /dev/hdb2 /mnt/hdb2 ext2 rw,nosuid,nodev 0 0 /dev/sda1 /mnt/sda1 vfat rw,nodiratime,nosuid,nodev,fmask=0000,dmask=0000,codepage=cp437,iocharset=ascii 0 0 /dev/sda3 /mnt/sda3 vfat rw,nodiratime,nosuid,nodev,fmask=0000,dmask=0000,codepage=cp437,iocharset=ascii 0 0 /dev/sdb1 /media/usbdisk vfat rw,nodiratime,nosuid,nodev,fmask=0022,dmask=0022,codepage=cp437,iocharset=ascii 0 0 }}} * rebuildfstab À» ¼Õ º¸¾Æ¾ß ÇÔ. * grubinstall.c ¸¦ ¼öÁ¤ÇÔ. * sprintf(device, "(hd%d,%d)",0,1); {{{ I've seen reference to the boot volume being the place where ntldr, NTDETECT.COM, and boot.ini reside, and the system volume being %SystemDrive%, or the volume containing %SystemRoot%. Those don't seem to be consistent with the display in Disk Management. }}} {{{ The Boot.ini file uses the Advanced RISC Computing (ARC) naming convention to define the path to a Windows XP Professional installation. If the contents of the Boot.ini are incorrectly changed or the file becomes corrupt, you might not be able to start Windows XP Professional. To detect and correct Boot.ini problems you need to understand ARC paths. }}} {{{ System Partition The system partition refers to the disk volume that contains the hardware-specific files that are needed to start Windows, such as Ntldr, Boot.ini, and Ntdetect.com. The system partition can be, but does not have to be, the same volume as the boot partition. }}} {{{ ; livecdinstall.nsi ; ; This script is perhaps one of the simplest NSIs you can make. All of the ; optional settings are left to their default settings. The installer simply ; prompts the user asking them where to install, and drops a copy of example1.nsi ; there. ;-------------------------------- ; The name of the installer Name "LivecdInstall" ; The file to write OutFile "livecdinstall.exe" ; The default installation directory InstallDir c:\boot Var SYSDRIVE Var OLDBOOTVER Var OLDLIVECDVER Var OLDGRUBVER Var NEWBOOTVER Var NEWLIVECDVER Var NEWGRUBVER ;-------------------------------- ; Pages Page components Page instfiles ;-------------------------------- ; The stuff to install Section "SysdriveCheck" ; ReadEnvStr $SYSDRIVE SystemDrive IfFileExists "$SYSDRIVE\NTLDR" 0 NTLDRnotfound IfFileExists "$SYSDRIVE\boot.ini" checkend bootininotfound NTLDRnotfound: MessageBox MB_OK|MB_ICONSTOP "Can't find NTLDR" Abort bootininotfound: MessageBox MB_OK|MB_ICONSTOP "Can't find boot.ini" Abort checkend: MessageBox MB_OK|MB_ICONSTOP "Find NTLDR and boot.ini" SectionEnd ; end the section Function readversion # some commands FunctionEnd Section "OldFileVerCheck" ; IfFileExists "$SYSDRIVE\LIVECD\version" 0 checkoldbootver ClearErrors FileOpen $0 $SYSDRIVE\LIVECD\version r IfErrors livecdveropenerror FileRead $0 $OLDLIVECDVER DetailPrint $OLDLIVECDVER FileClose $0 goto checkoldbootver livecdveropenerror: Abort ckeckoldbootver: IfFileExists "$SYSDRIVE\boot\version" 0 checkoldgrubver ClearErrors FileOpen $0 $SYSDRIVE\boot\version r IfErrors bootveropenerror FileRead $0 $OLDBOOTVER DetailPrint $OLDBOOTVER FileClose $0 goto checkoldgrubver bootveropenerror: Abort checkoldgrubver: IfFileExists "$SYSDRIVE\boot\grub\version" 0 done ClearErrors FileOpen $0 $SYSDRIVE\boot\grub/version r IfErrors grubveropenerror FileRead $0 $OLDGRUBVER DetailPrint $OLDGRUBVER FileClose $0 goto done bootveropenerror: Abort done: SectionEnd ; end the section Section "NewFileVerCheck" ; IfFileExists "$SYSDRIVE\LIVECD\version" 0 +2 RMDir /r $SYSDRIVE\LIVECD IfFileExists "boot\version" 0 +2 RMDir /r $SYSDRIVE\boot IfFileExists "boot\grub\version" 0 +2 RMDir /r $SYSDRIVE\boot CreateDirectory $SYSDRIVE\boot CreateDirectory $SYSDRIVE\LIVECD SectionEnd ; end the section }}} {{{ grubinstall À» °íÃÄ¾ß Çϴ°¡? ¹®Á¦°¡ »ý±â¸é ±×¶§ »ý°¢ÇÏÀÚ.... }}} {{{ http://www.articles.lostcoders.net/computers/64/install-osx-tiger-on-intel-machines-or-usb-drives-using-only-windows-software/ }}} === NSIS (Nullsoft Scriptable Install System) === {{{ NSIS: Bin Contrib Docs Examples Include Menu NSIS.chm NSIS.exe Plugins Stubs license.txt livecd2win makensis.exe makensisw.exe nsisconf.nsh uninst-nsis.exe ./Bin: GenPat.exe LibraryLocal.exe MakeLangId.exe RegTool.bin zip2exe.exe ./Contrib: Graphics Language files Modern UI Self-Extractor UIs zip2exe ./Contrib/Graphics: Checks Header Icons Wizard ./Contrib/Graphics/Checks: big.bmp classic-cross.bmp classic.bmp colorful.bmp grey-cross.bmp grey.bmp modern.bmp red-round.bmp red.bmp simple-round.bmp simple-round2.bmp simple.bmp ./Contrib/Graphics/Header: nsis-r.bmp nsis.bmp orange-nsis.bmp orange-r-nsis.bmp orange-r.bmp orange-uninstall-nsis.bmp orange-uninstall-r-nsis.bmp orange-uninstall-r.bmp orange-uninstall.bmp orange.bmp win.bmp ./Contrib/Graphics/Icons: arrow-install.ico arrow-uninstall.ico arrow2-install.ico arrow2-uninstall.ico box-install.ico box-uninstall.ico classic-install.ico classic-uninstall.ico llama-blue.ico llama-grey.ico modern-install-blue-full.ico modern-install-blue.ico modern-install-colorful.ico modern-install-full.ico modern-install.ico modern-uninstall-blue-full.ico modern-uninstall-blue.ico modern-uninstall-colorful.ico modern-uninstall-full.ico modern-uninstall.ico nsis1-install.ico nsis1-uninstall.ico orange-install-nsis.ico orange-install.ico orange-uninstall-nsis.ico orange-uninstall.ico pixel-install.ico pixel-uninstall.ico win-install.ico win-uninstall.ico ./Contrib/Graphics/Wizard: arrow.bmp llama.bmp nsis.bmp nullsoft.bmp orange-nsis.bmp orange-uninstall-nsis.bmp orange-uninstall.bmp orange.bmp win.bmp ./Contrib/Language files: Albanian.nlf Arabic.nlf Belarusian.nlf Bosnian.nlf Breton.nlf Bulgarian.nlf Catalan.nlf Croatian.nlf Czech.nlf Danish.nlf Dutch.nlf English.nlf Estonian.nlf Farsi.nlf Finnish.nlf French.nlf German.nlf Greek.nlf Hebrew.nlf Hungarian.nlf Icelandic.nlf Indonesian.nlf Italian.nlf Japanese.nlf Korean.nlf Kurdish.nlf Latvian.nlf Lithuanian.nlf Luxembourgish.nlf Macedonian.nlf Malay.nlf Mongolian.nlf Norwegian.nlf Polish.nlf Portuguese.nlf PortugueseBR.nlf Romanian.nlf Russian.nlf Serbian.nlf SerbianLatin.nlf SimpChinese.nlf Slovak.nlf Slovenian.nlf Spanish.nlf Swedish.nlf Thai.nlf TradChinese.nlf Turkish.nlf Ukrainian.nlf ./Contrib/Modern UI: Language files System.nsh ioSpecial.ini ./Contrib/Modern UI/Language files: Albanian.nsh Arabic.nsh Belarusian.nsh Bosnian.nsh Breton.nsh Bulgarian.nsh Catalan.nsh Croatian.nsh Czech.nsh Danish.nsh Default.nsh Dutch.nsh English.nsh Estonian.nsh Farsi.nsh Finnish.nsh French.nsh German.nsh Greek.nsh Hebrew.nsh Hungarian.nsh Icelandic.nsh Indonesian.nsh Italian.nsh Japanese.nsh Korean.nsh Kurdish.nsh Latvian.nsh Lithuanian.nsh Luxembourgish.nsh Macedonian.nsh Malay.nsh Mongolian.nsh Norwegian.nsh Polish.nsh Portuguese.nsh PortugueseBR.nsh Romanian.nsh Russian.nsh Serbian.nsh SerbianLatin.nsh SimpChinese.nsh Slovak.nsh Slovenian.nsh Spanish.nsh Swedish.nsh Thai.nsh TradChinese.nsh Turkish.nsh Ukrainian.nsh ./Contrib/Self-Extractor: Bin Example.nsi LivecdExtractor.exe Readme.html livecdextractor.nsi self-extractor.png ./Contrib/Self-Extractor/Bin: Add-Dir.exe Add-Dir.lst Dir-To-SE Make-List SE-Base.nsh Zip-To-SE dlg.exe dlg_0.ini dlg_1.ini dlg_2.ini dlg_pass.ini ./Contrib/Self-Extractor/Bin/Dir-To-SE: Dir-To-SE.exe Dir-To-SE.txt header.nsh ./Contrib/Self-Extractor/Bin/Make-List: Make-List.exe Make-List.txt ./Contrib/Self-Extractor/Bin/Zip-To-SE: Cache Zip-To-SE.exe Zip-To-SE.txt header.nsh ./Contrib/Self-Extractor/Bin/Zip-To-SE/Cache: unzip.exe ./Contrib/UIs: default.exe modern.exe modern_headerbmp.exe modern_headerbmpr.exe modern_nodesc.exe modern_smalldesc.exe sdbarker_tiny.exe ./Contrib/zip2exe: Base.nsh Classic.nsh Modern.nsh ./Docs: AdvSplash Banner BgImage Dialer InstallOptions Math Modern UI NSISdl Splash StartMenu StrFunc System VPatch makensisw nsExec ./Examples: AdvSplash Banner BgImage FileFunc.ini FileFunc.nsi FileFuncTest.nsi InstallOptions Library.nsi LogicLib.nsi Math Modern UI Splash StartMenu StrFunc.nsi System TextFunc.ini TextFunc.nsi TextFuncTest.nsi UserInfo UserVars.nsi VPatch VersionInfo.nsi WordFunc.ini WordFunc.nsi WordFuncTest.nsi bigtest.nsi example1.nsi example2.nsi gfx.nsi languages.nsi makensis.ini makensis.nsi nsExec one-section.nsi primes.nsi rtest.nsi silent.nsi viewhtml.nsi waplugin.nsi ./Include: Colors.nsh FileFunc.nsh Library.nsh LogicLib.nsh MUI.nsh SE.nsh Sections.nsh StrFunc.nsh TextFunc.nsh UpgradeDLL.nsh VPatchLib.nsh WinMessages.nsh WordFunc.nsh livecd2win.nsh ./Menu: compiler.html docs.html images index.html intro.html notinstalled.html update.html websites.html ./Menu/images: clear.gif header.gif line.gif menu.gif menud.gif site.gif ./Plugins: AdvSplash.dll Banner.dll BgImage.dll Dialer.dll InstallOptions.dll LangDLL.dll Math.dll NSISdl.dll Splash.dll StartMenu.dll System.dll TypeLib.dll UserInfo.dll VPatch.dll nsExec.dll ./Stubs: bzip2 bzip2_solid lzma lzma_solid uninst zlib zlib_solid ./livecd2win: LIVECD Readme.html boot flushdrv.exe grubinstall.exe livecd2win.exe livecd2win.nsi ./livecd2win/LIVECD: base.sqfs usr.sqfs version ./livecd2win/boot: grub initrd.gz version vmlinuz ./livecd2win/boot/grub: menu.lst stage1 stage2 version }}} * /NSIS/include/livecd2win.nsh {{{ !define StrStr "!insertmacro StrStr" !macro StrStr ResultVar String SubString Push `${String}` Push `${SubString}` Call StrStr Pop `${ResultVar}` !macroend Function StrStr /*After this point: ------------------------------------------ $R0 = SubString (input) $R1 = String (input) $R2 = SubStringLen (temp) $R3 = StrLen (temp) $R4 = StartCharPos (temp) $R5 = TempStr (temp)*/ ;Get input from user Exch $R0 Exch Exch $R1 Push $R2 Push $R3 Push $R4 Push $R5 ;Get "String" and "SubString" length StrLen $R2 $R0 StrLen $R3 $R1 ;Start "StartCharPos" counter StrCpy $R4 0 ;Loop until "SubString" is found or "String" reaches its end loop: ;Remove everything before and after the searched part ("TempStr") StrCpy $R5 $R1 $R2 $R4 ;Compare "TempStr" with "SubString" StrCmp $R5 $R0 done ;If not "SubString", this could be "String"'s end IntCmp $R4 $R3 done 0 done ;If not, continue the loop IntOp $R4 $R4 + 1 Goto loop done: /*After this point: ------------------------------------------ $R0 = ResultVar (output)*/ ;Remove part before "SubString" on "String" (if there has one) StrCpy $R0 $R1 `` $R4 ;Return output to user Pop $R5 Pop $R4 Pop $R3 Pop $R2 Pop $R1 Exch $R0 FunctionEnd Function AdvReplaceInFile Exch $0 ;file to replace in Exch Exch $1 ;number to replace after Exch Exch 2 Exch $2 ;replace and onwards Exch 2 Exch 3 Exch $3 ;replace with Exch 3 Exch 4 Exch $4 ;to replace Exch 4 Push $5 ;minus count Push $6 ;universal Push $7 ;end string Push $8 ;left string Push $9 ;right string Push $R0 ;file1 Push $R1 ;file2 Push $R2 ;read Push $R3 ;universal Push $R4 ;count (onwards) Push $R5 ;count (after) Push $R6 ;temp file name ;------------------------------- GetTempFileName $R6 FileOpen $R1 $0 r ;file to search in FileOpen $R0 $R6 w ;temp file StrLen $R3 $4 StrCpy $R4 -1 StrCpy $R5 -1 loop_read: ClearErrors FileRead $R1 $R2 ;read line IfErrors exit StrCpy $5 0 StrCpy $7 $R2 loop_filter: IntOp $5 $5 - 1 StrCpy $6 $7 $R3 $5 ;search StrCmp $6 "" file_write2 StrCmp $6 $4 0 loop_filter StrCpy $8 $7 $5 ;left part IntOp $6 $5 + $R3 StrCpy $9 $7 "" $6 ;right part StrLen $6 $7 StrCpy $7 $8$3$9 ;re-join StrCmp -$6 $5 0 loop_filter IntOp $R4 $R4 + 1 StrCmp $2 all file_write1 StrCmp $R4 $2 0 file_write2 IntOp $R4 $R4 - 1 IntOp $R5 $R5 + 1 StrCmp $1 all file_write1 StrCmp $R5 $1 0 file_write1 IntOp $R5 $R5 - 1 Goto file_write2 file_write1: FileWrite $R0 $7 ;write modified line Goto loop_read file_write2: FileWrite $R0 $7 ;write modified line Goto loop_read exit: FileClose $R0 FileClose $R1 SetDetailsPrint none Delete $0 Rename $R6 $0 Delete $R6 SetDetailsPrint both ;------------------------------- Pop $R6 Pop $R5 Pop $R4 Pop $R3 Pop $R2 Pop $R1 Pop $R0 Pop $9 Pop $8 Pop $7 Pop $6 Pop $5 Pop $4 Pop $3 Pop $2 Pop $1 Pop $0 FunctionEnd Function FileSearch Exch $0 ;search for Exch Exch $1 ;input file Exch Push $2 Push $3 Push $4 Push $5 Push $6 Push $7 Push $8 Push $9 Push $R0 FileOpen $2 $1 r StrLen $4 $0 StrCpy $5 0 StrCpy $7 no StrCpy $8 0 StrCpy $9 0 loop_main: FileRead $2 $3 IfErrors done IntOp $R0 $R0 + $9 StrCpy $9 0 StrCpy $5 0 filter_top: IntOp $5 $5 - 1 StrCpy $6 $3 $4 $5 StrCmp $6 "" loop_main StrCmp $6 $0 0 filter_top StrCpy $3 $3 $5 StrCpy $5 0 StrCpy $7 yes StrCpy $9 1 IntOp $8 $8 + 1 Goto filter_top done: FileClose $2 StrCpy $0 $8 StrCpy $1 $7 StrCpy $2 $R0 Pop $R0 Pop $9 Pop $8 Pop $7 Pop $6 Pop $5 Pop $4 Pop $3 Exch 2 Exch $2 ;output number of lines Exch 2 Exch Exch $1 ;output yes/no Exch Exch $0 ;output count found FunctionEnd }}} * /NSIS/livecd2win/livecd2win.nsi {{{ ; livecdinstall.nsi ; ; This script is perhaps one of the simplest NSIs you can make. All of the ; optional settings are left to their default settings. The installer simply ; prompts the user asking them where to install, and drops a copy of example1.nsi ; there. ;-------------------------------- !include "MUI.nsh" !include "livecd2win.nsh" ; The name of the installer Name "Livecd2win" ; The file to write OutFile "livecd2win.exe" ; The default installation directory InstallDir c:\boot !define MUI_ABORTWARNING !insertmacro MUI_PAGE_WELCOME !insertmacro MUI_PAGE_COMPONENTS !insertmacro MUI_PAGE_INSTFILES !insertmacro MUI_PAGE_FINISH !insertmacro MUI_UNPAGE_WELCOME !insertmacro MUI_UNPAGE_CONFIRM !insertmacro MUI_UNPAGE_INSTFILES !insertmacro MUI_UNPAGE_FINISH !insertmacro MUI_LANGUAGE "Korean" Var SYSDRIVE Var DEFAULT Var PARTITION Var RDISK Var RESULT ;-------------------------------- ; The stuff to install Function .onInit ReadEnvStr $SYSDRIVE SystemDrive IfFileExists "$SYSDRIVE\NTLDR" 0 NTLDRnotfound IfFileExists "$SYSDRIVE\boot.ini" checkend bootininotfound NTLDRnotfound: MessageBox MB_OK|MB_ICONSTOP "Can't find NTLDR" Abort bootininotfound: MessageBox MB_OK|MB_ICONSTOP "Can't find boot.ini" Abort checkend: FunctionEnd ; end the sectio Function un.onInit ReadEnvStr $SYSDRIVE SystemDrive IfFileExists "$SYSDRIVE\boot.ini" checkend bootininotfound bootininotfound: MessageBox MB_OK|MB_ICONSTOP "Can't find boot.ini" Abort checkend: FunctionEnd ; end the sectio Section "CopyFiles" ; IfFileExists "$SYSDRIVE\LIVECD\version" 0 +2 RMDir /r $SYSDRIVE\LIVECD IfFileExists "$SYSDRIVE\boot\version" 0 +2 RMDir /r $SYSDRIVE\boot CreateDirectory $SYSDRIVE\LIVECD CreateDirectory $SYSDRIVE\boot CreateDirectory $SYSDRIVE\boot\grub CopyFiles LIVECD\*.* $SYSDRIVE\LIVECD CopyFiles boot\vmlinuz $SYSDRIVE\boot CopyFiles boot\initrd.gz $SYSDRIVE\boot CopyFiles boot\grub\stage1 $SYSDRIVE\boot\grub CopyFiles boot\grub\stage2 $SYSDRIVE\boot\grub CopyFiles boot\grub\menu.lst $SYSDRIVE\boot\grub WriteUninstaller "uninstall.exe" SectionEnd ; end the section Section "GrubInstall" ; ReadINIStr $DEFAULT $SYSDRIVE\boot.ini "boot loader" default ; set $PARTITION ${StrStr} "$RESULT" "$DEFAULT" "partition(1)" StrCmp $RESULT "" +3 StrCpy $PARTITION "0" goto setrdisk ${StrStr} "$RESULT" "$DEFAULT" "partition(2)" StrCmp $RESULT "" +3 StrCpy $PARTITION "1" goto setrdisk ${StrStr} "$RESULT" "$DEFAULT" "partition(3)" StrCmp $RESULT "" +3 StrCpy $PARTITION "2" goto setrdisk ${StrStr} "$RESULT" "$DEFAULT" "partition(4)" StrCmp $RESULT "" +3 StrCpy $PARTITION "3" goto setrdisk Abort ; set $RDISK setrdisk: ${StrStr} "$RESULT" "$DEFAULT" "rdisk(0)" StrCmp $RESULT "" +3 StrCpy $RDISK "0" goto writemenu ${StrStr} "$RESULT" "$DEFAULT" "rdisk(1)" StrCmp $RESULT "" +3 StrCpy $RDISK "1" goto writemenu ${StrStr} "$RESULT" "$DEFAULT" "rdisk(2)" StrCmp $RESULT "" +3 StrCpy $RDISK "2" goto writemenu ${StrStr} "$RESULT" "$DEFAULT" "rdisk(3)" StrCmp $RESULT "" +3 StrCpy $RDISK "3" goto writemenu Abort writemenu: StrCmp $PARTITION "0" 0 +3 StrCmp $RDISK "0" 0 +2 goto noneedreplace Push "(hd0,0)" Push "(hd$RDISK,$PARTITION)" Push all Push all Push $SYSDRIVE\boot\grub\menu.lst Call AdvReplaceInFile noneedreplace: ExecWait "flushdrv.exe" $0 DetailPrint "flushdrv returned $0" ExecWait "grubinstall.exe \ -d $SYSDRIVE \ -1 $SYSDRIVE\boot\grub\stage1 \ -2 $SYSDRIVE\boot\grub\stage2 \ -m (hd$RDISK,$PARTITION)$SYSDRIVE\boot\grub\menu.lst" $0 DetailPrint "grubinstall returned $0" ExecWait "flushdrv.exe" $0 DetailPrint "flushdrv returned $0" SectionEnd ; end the section Section "EditBootini" ; ExecWait "attrib -r -h -s $SYSDRIVE\boot.ini" $0 DetailPrint "attrib result $0" Push $SYSDRIVE\boot.ini Push "LiveCD on Windows Filesystem" Call FileSearch Pop $0 Pop $1 Pop $2 StrCmp $1 yes resetattrib IfFileExists $SYSDRIVE\boot.ini.grubbak grubadd 0 ExecWait "copy $SYSDRIVE\boot.ini $SYSDRIVE\boot.ini.grubbak" $0 DetailPrint "copy result $0" ExecWait "attrib +r +h +s $SYSDRIVE\boot.ini.grubbak" $0 DetailPrint "attrib result $0" grubadd: FileOpen $0 $SYSDRIVE\boot.ini a FileSeek $0 0 END #go to end FileWrite $0 '$SYSDRIVE\boot\grub\stage1="LIVECD on Windows Filesystem"' FileClose $0 resetattrib: ExecWait "attrib +r +h +s $SYSDRIVE\boot.ini" $0 DetailPrint "attrib result $0" SectionEnd ; end the section Section "un.RestoreBootini" ; IfFileExists $SYSDRIVE\boot.ini.grubbak grubbakfound 0 MessageBox MB_OK|MB_ICONSTOP "Can't find boot.ini.grubbak" Abort grubbakfound: Delete $SYSDRIVE\boot.ini ExecWait "copy $SYSDRIVE\boot.ini.grubbak $SYSDRIVE\boot.ini" $0 DetailPrint "copy result $0" ExecWait "attrib +r +h +s $SYSDRIVE\boot.ini" $0 DetailPrint "attrib result $0" SectionEnd ; end the section Section "un.DeleteFiles" ; RMDir /r $SYSDRIVE\boot\grub RMDir /r $SYSDRIVE\boot RMDir /r $SYSDRIVE\LIVECD SectionEnd ; end the section }}} * /NSIS/Contrib/Self-Extractor/livecdextractor.nsi {{{ ; ----------------------------- ; ; NSIS Self-Extractor ; ; example script ; ; ----------------------------- ; ; Extracts NSIS Self-Extractor ; ;- Include header !include "SE.nsh" SetCompress off ;- General settings ${SE-HeadingLine1} "Livecd2winExtractor" ${SE-HeadingLine2} "0.1" ${SE-Product} "${SE-HeadingLine1} ${SE-HeadingLine2}" ${SE-OutFile} "LivecdExtractor.exe" ${SE-ExtractDir} "C:\livecd2win" ${SE-ExecCheckBox} "$INSTDIR\livecd2win.exe" "Install Livecd on Windows" ${SE-AutoClose} ;- Files to extract ${SE-FilesStart} ${SE-OutPath} "$INSTDIR" ${SE-File} "${NSISDIR}\livecd2win\grubinstall.exe" "grubinstall.exe" ${SE-File} "${NSISDIR}\livecd2win\flushdrv.exe" "flushdrv.exe" ${SE-File} "${NSISDIR}\livecd2win\livecd2win.exe" "livecd2win.exe" ${SE-File} "${NSISDIR}\livecd2win\Readme.html" "Readme.html" ${SE-OutPath} "$INSTDIR\LIVECD" ${SE-File} "${NSISDIR}\livecd2win\LIVECD\base.sqfs" "base.sqfs" ${SE-File} "${NSISDIR}\livecd2win\LIVECD\usr.sqfs" "usr.sqfs" ${SE-File} "${NSISDIR}\livecd2win\LIVECD\version" "version" ${SE-OutPath} "$INSTDIR\boot" ${SE-File} "${NSISDIR}\livecd2win\boot\vmlinuz" "vmlinuz" ${SE-File} "${NSISDIR}\livecd2win\boot\initrd.gz" "initrd.gz" ${SE-File} "${NSISDIR}\livecd2win\boot\version" "version" ${SE-OutPath} "$INSTDIR\boot\grub" ${SE-File} "${NSISDIR}\livecd2win\boot\grub\stage1" "stage1" ${SE-File} "${NSISDIR}\livecd2win\boot\grub\stage2" "stage2" ${SE-File} "${NSISDIR}\livecd2win\boot\grub\menu.lst" "menu.lst" ${SE-File} "${NSISDIR}\livecd2win\boot\grub\version" "version" ${SE-FilesEnd} }}} * http://bbs.kldp.org/viewtopic.php?p=222667 * /usr/share/hal/fdi/policy/ * udev * /etc/udev/rules.d/50-udev.rules * /etc/udev/scripts/ide-media.sh * /etc/udev/scripts/check-cdrom.sh * /etc/udev/scripts/dvb.sh {{{ HAL is an information service for devices. The HAL daemon maintains a dynamic database of connected hardware devices. In certain cases, this information can be used by specialized callout programs to maintain certain device configuration files. This is the case with removable file systems like CD-ROMs and USB card readers. HAL will invoke the fstab-sync callout program that will use HAL information to dynamically change managed entries in the fstab file. Removable devices are managed by fstab-sync with HAL information, telling fstab-sync when such disks are attached. The situation can be confusing. Callout programs perform the actual tasks, but HAL provides the device information. For example, though fstab-sync changes the fstab file, the options and mountpoints used for CD-ROM entries are specified in HAL device information files that set policies for storage management. }}} {{{ Hal properties for devices are handled by device information files (fdi) in the /usr/share/hal/fdi and /etc/hal/fdi directories. The /usr/share/hal/fdi directory is used for configurations provided by the distribution, in this case, Fedora Core 4, whereas /etc/hal/fdi is used for setting user administrative configurations. In both are listed subdirectories for the different kinds of information that HAL manages, such as policy, whose subdirectories have files with policies for how to manage devices. The files, known as device information files, have rules for obtaining information about devices, as well as detecting and assigning options for removable devices. The device information files have the extension .fdi, as in storage-policy.fdi. For example, the policy directory has two subdirectories: 10osvendor and 30thirdpary. The 10osvendor holds the fdi files that have policy rules for managing removable devices on Fedora Core 4 (10osvendor replaced 90defaultpolicy, which was used in Fedora Core 3). This directory holds the 10-storage-policy.fdi policy file used for storage devices. Here you'll find the properties that specify options for removable storage devices such as CD-ROMs. The directories begin with numbers; lower numbers are read first. Unlike with udev, the last property read will override any previous property settings, so priority is given to higher-numbered directories and the fdi files they hold. This is why the default policies are in 10osvendor, whereas the user policies, which would override the defaults, would be in a higher-numbered directory like 30user, as are third-party policies, 20thirdpolicy. There are currently three device information file directories set up in the device information file directories, each for different kinds of information: information, policy, and preprobe. * Information: Holds information about devices. * Policy: Sets policies such as storage policies. The default policies for a storage device are in a 10-storage-policy.fdi file in the policy/10osvendor directory. * Preprobe: Handles difficult devices such as unusual drives or drive configurations, for instance, those in preprobe/10osvendor/10-ide-drives.fdi. This contains information needed even before the device is probed. Within these subdirectories are still other subdirectories indicating where the device information files come from, such as vendor, thirdparty, or user, and their priority. Certain critical files are listed here: * information/10freedesktop: Information provided by freedesktop.org * policy/10osvendor: Default policies (set by system administrator and OS distribution) * preprobe/10osvendor: Preprobe policies for difficult devices }}} {{{ usb 1-2: new full speed USB device using uhci_hcd and address 2 Initializing USB Mass Storage driver... scsi0 : SCSI emulation for USB Mass Storage devices usb-storage: device found at 2 usb-storage: waiting for device to settle before scanning usbcore: registered new driver usb-storage USB Mass Storage support registered. Vendor: STORAGE Model: [HDD] Rev: 1026 Type: Direct-Access ANSI SCSI revision: 02 usb-storage: device scan complete SCSI device sda: 250400 512-byte hdwr sectors (128 MB) sda: Write Protect is off sda: Mode Sense: 03 00 00 00 sda: assuming drive cache: write through SCSI device sda: 250400 512-byte hdwr sectors (128 MB) sda: Write Protect is off sda: Mode Sense: 03 00 00 00 sda: assuming drive cache: write through sda: sda1 Attached scsi removable disk sda at scsi0, channel 0, id 0, lun 0 }}} * fstab ÀÌ ¿ì¼±ÇÏ´Â °Í °°À½. * À§ÀÇ °æ¿ì´Â fstab ¿¡ ¼³Á¤µÇ¾î ÀÖ¾ú´ø »óȲÀÓ {{{ /dev/fd0 /media/floppy1 auto pamconsole,exec,noauto,managed 0 0 /dev/hda /media/cdrom auto pamconsole,exec,noauto,managed 0 0 /dev/sda1 /media/usbdisk vfat pamconsole,exec,noauto,managed 0 0 }}} {{{ usb 1-2: new full speed USB device using uhci_hcd and address 2 Initializing USB Mass Storage driver... scsi0 : SCSI emulation for USB Mass Storage devices usb-storage: device found at 2 usb-storage: waiting for device to settle before scanning usbcore: registered new driver usb-storage USB Mass Storage support registered. Vendor: STORAGE Model: [HDD] Rev: 1026 Type: Direct-Access ANSI SCSI revision: 02 usb-storage: device scan complete SCSI device sda: 250400 512-byte hdwr sectors (128 MB) sda: Write Protect is off sda: Mode Sense: 03 00 00 00 sda: assuming drive cache: write through SCSI device sda: 250400 512-byte hdwr sectors (128 MB) sda: Write Protect is off sda: Mode Sense: 03 00 00 00 sda: assuming drive cache: write through sda: sda1 Attached scsi removable disk sda at scsi0, channel 0, id 0, lun 0 }}} {{{ /dev/sda1 /media/usbdisk vfat rw,nodiratime,nosuid,nodev,fmask=0022,dmask=0022,codepage=cp437,iocharset=ascii 0 0 }}} * /etc/auto.master * /etc/auto.misc * usb -fstype=vfat,rw,iocharset=iso8859-7 :/dev/sdc1 * µð¹ÙÀ̽º°¡ °íÁ¤µÇÁö ¾ÊÀ¸¹Ç·Î °ï¶õÇÔ. {{{ volume.label true true }}} * https://www.redhat.com/archives/fedora-list/2005-June/msg01903.html * https://www.redhat.com/archives/fedora-devel-list/2005-April/msg00874.html * diff /usr/share/hal/fdi/policy/10osvendor/10-storage-policy.fdi {{{ 15d14 < true }}} {{{ Nov 24 09:08:08 localhost scsi.agent[2935]: disk at /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1:1.0/host2/target2:0:0/2:0:0:0 Nov 24 09:08:09 localhost fstab-sync[2955]: added mount point /media/usbdisk for /dev/sdb1 }}} * messagebus restart Çϸé icon µéÀÌ ³ª¿È. * messgaebus °¡ 󸮸¦ ¸ø ÇÏ´Â °ÍÀ¸·Î »ý°¢ÇØ¾ß ÇÔ. * Áï dbus daemon ¿¡ ¹®Á¦°¡ ÀÖ´Â °ÍÀ¸·Î »ý°¢µÊ. * dbus-monitor --system {{{ signal sender=:1.1 -> dest=(null destination) interface=org.freedesktop.Hal.Manager; member=DeviceAdded 0 string "/org/freedesktop/Hal/devices/volume_label__0" signal sender=:1.1 -> dest=(null destination) interface=org.freedesktop.Hal.Manager; member=DeviceRemoved 0 string "/org/freedesktop/Hal/devices/usb_device_1080_1_noserial_if0" }}} * /usr/share/hal/fdi/policy/10osvendor/10-storage-policy.fdi {{{ hald-addon-storage }}} * /usr/share/hal/fdi/policy/10osvendor/90-fstab-sync.fdi {{{ fstab-sync --clean fstab-sync fstab-sync fstab-sync fstab-sync }}} {{{ udi = '/org/freedesktop/Hal/devices/storage_model_LG_CD_ROM_CRD_8521B' info.callouts.remove = {'fstab-sync'} (string list) info.callouts.add = {'hald-add-selinux-mount-option', 'fstab-sync'} (string list) info.addons = {'hald-addon-storage'} (string list) storage.policy.desired_mount_point = 'cdrom' (string) storage.policy.mount_filesystem = 'auto' (string) storage.policy.should_mount = true (bool) block.storage_device = '/org/freedesktop/Hal/devices/storage_model_LG_CD_ROM_CRD_8521B' (string) info.udi = '/org/freedesktop/Hal/devices/storage_model_LG_CD_ROM_CRD_8521B' (string) storage.cdrom.write_speed = 0 (0x0) (int) storage.cdrom.read_speed = 9152 (0x23c0) (int) storage.cdrom.support_media_changed = true (bool) storage.cdrom.dvdplusrw = false (bool) storage.cdrom.dvdplusr = false (bool) storage.cdrom.dvdram = false (bool) storage.cdrom.dvdrw = false (bool) storage.cdrom.dvdr = false (bool) storage.cdrom.dvd = false (bool) storage.cdrom.cdrw = false (bool) storage.cdrom.cdr = false (bool) storage.firmware_version = '1.02' (string) storage.requires_eject = true (bool) storage.hotpluggable = false (bool) info.capabilities = {'storage', 'block', 'storage.cdrom'} (string list) info.category = 'storage' (string) info.product = 'LG CD-ROM CRD-8521B' (string) storage.removable = true (bool) storage.physical_device = '/org/freedesktop/Hal/devices/pci_8086_7111_ide_0_0' (string) storage.drive_type = 'cdrom' (string) storage.vendor = '' (string) storage.model = 'LG CD-ROM CRD-8521B' (string) storage.automount_enabled_hint = true (bool) storage.media_check_enabled = true (bool) storage.no_partitions_hint = true (bool) storage.bus = 'ide' (string) block.is_volume = false (bool) block.minor = 0 (0x0) (int) block.major = 3 (0x3) (int) block.device = '/dev/hda' (string) linux.hotplug_type = 3 (0x3) (int) info.parent = '/org/freedesktop/Hal/devices/pci_8086_7111_ide_0_0' (string) linux.sysfs_path_device = '/sys/block/hda' (string) linux.sysfs_path = '/sys/block/hda' (string) }}} * /usr/libexec/hald-add-selinux-mount-option * /usr/sbin/fstab-sync * /usr/libexec {{{ [root@localhost libexec]# ls hald* hald-add-selinux-mount-option hald-addon-usb-csr hald-probe-smbios hald-addon-acpi hald-probe-hiddev hald-probe-storage hald-addon-hid-ups hald-probe-input hald-probe-volume hald-addon-pmu hald-probe-pc-floppy hald-addon-storage hald-probe-printer }}} * cat /etc/fstab * usbdisk ¾øÀ½ * dbus-monitor --system * usb ²ÈÀ½ * dbus-monitor ¿¡ ³ª¿È. {{{ signal sender=:1.1 -> dest=(null destination) interface=org.freedesktop.Hal.Manager; member=DeviceAdded 0 string "/org/freedesktop/Hal/devices/usb_device_1080_1_noserial" signal sender=:1.1 -> dest=(null destination) interface=org.freedesktop.Hal.Manager; member=DeviceAdded 0 string "/org/freedesktop/Hal/devices/usb_device_1080_1_noserial_if0" signal sender=:1.1 -> dest=(null destination) interface=org.freedesktop.Hal.Manager; member=DeviceAdded 0 string "/org/freedesktop/Hal/devices/usb_device_1080_1_noserial_if0_scsi_host" signal sender=:1.1 -> dest=(null destination) interface=org.freedesktop.Hal.Manager; member=DeviceAdded 0 string "/org/freedesktop/Hal/devices/usb_device_1080_1_noserial_if0_scsi_host_scsi_device_lun0" signal sender=:1.1 -> dest=(null destination) interface=org.freedesktop.Hal.Manager; member=DeviceAdded 0 string "/org/freedesktop/Hal/devices/storage_model__HDD_" signal sender=:1.1 -> dest=(null destination) interface=org.freedesktop.Hal.Manager; member=DeviceAdded 0 string "/org/freedesktop/Hal/devices/volume_part1_size_128172032" }}} * /etc/fstab º¯°æµÊ. fstab-sync * È­¸é¿¡´Â ³ª¿ÀÁö ¾ÊÀ½ * messagesbus restart ¸¦ Çϸé È­¸é¿¡ ³ª¿È. {{{ signal sender=org.freedesktop.DBus -> dest=(null destination) interface=org.freedesktop.DBus; member=NameOwnerChanged 0 string "com.redhat.CupsDriverConfig" 1 string ":1.0" 2 string "" signal sender=org.freedesktop.DBus -> dest=(null destination) interface=org.freedesktop.DBus; member=NameOwnerChanged 0 string ":1.0" 1 string ":1.0" 2 string "" signal sender=org.freedesktop.DBus -> dest=(null destination) interface=org.freedesktop.DBus; member=NameOwnerChanged 0 string "org.freedesktop.Hal" 1 string ":1.1" 2 string "" signal sender=org.freedesktop.DBus -> dest=(null destination) interface=org.freedesktop.DBus; member=NameOwnerChanged 0 string ":1.1" 1 string ":1.1" 2 string "" signal sender=org.freedesktop.DBus -> dest=(null destination) interface=org.freedesktop.DBus; member=NameOwnerChanged 0 string ":1.2" 1 string ":1.2" 2 string "" signal sender=org.freedesktop.DBus -> dest=(null destination) interface=org.freedesktop.DBus; member=NameOwnerChanged 0 string "com.redhat.PrintDriverSelection" 1 string ":1.3" 2 string "" signal sender=org.freedesktop.DBus -> dest=(null destination) interface=org.freedesktop.DBus; member=NameOwnerChanged 0 string ":1.3" 1 string ":1.3" 2 string "" signal sender=org.freedesktop.DBus -> dest=(null destination) interface=org.freedesktop.DBus; member=NameOwnerChanged 0 string ":1.4" 1 string ":1.4" 2 string "" signal sender=(null sender) -> dest=(null destination) interface=org.freedesktop.DBus.Local; member=Disconnected }}} * http://kde.ground.cz/tiki-index.php?page=DBUS * yum update * rebuildfstab ¼öÁ¤ * 10-storage-policy.fdi º¯°æ